确定Perl模块

时间:2016-07-18 01:56:50

标签: python perl 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运行脚本时打印目录,它指向我的主目录。

我可以尝试使用其他方法获得脚本的相对路径吗?

1 个答案:

答案 0 :(得分:3)

我认为您正在询问如何执行与执行它的模块位于同一目录中的脚本。

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__是一个特殊标记,它返回符号所在文件的路径。