第一个模块:
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运行脚本时打印目录,它指向我的主目录。
我可以尝试使用其他方法获得脚本的相对路径吗?
答案 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__
是一个特殊标记,它返回符号所在文件的路径。