繁体   English   中英

确定Perl模块中的相对路径

[英]Determining relative path in Perl Module

第一个模块:

package Compute;

our $sort_script= "/app/scripts/python_script.py";

第二单元:

package ProcessRestart;
use Compute;

# This perl module is also in /app/scripts/
# host1.com is an argument or script parameter 

$returnMsg= `$Compute::sort_script host1.com`;

以上是我编写的perl模块的示例。 它从其他模块调用python脚本并将其传递给必要的参数/参数。

我已经尝试删除键入脚本的实际路径并将其替换为“./python_script.py”但它似乎不起作用。

我尝试在使用Cwd运行脚本时打印目录,它指向我的主目录。

还有哪些方法可以尝试获得脚本的相对路径?

我想你问的是如何执行一个脚本,该脚本位于与执行它的模块相同的目录中。

use Path::Class qw( file );

my $qfn = file(__FILE__)->dir->file('python_script.py');

要么

use File::Basename qw( dirname );

my $qfn = dirname(__FILE__) . '/python_script.py';

要么

use Dir::Self qw( __DIR__ );

my $qfn = __DIR__ . '/python_script.py';

__FILE__是一个特殊标记,它返回符号所在文件的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM