Perl 脚本在从系统命令运行时找不到包含文件



我有以下文件:

a.pl
    #!/usr/bin/perl
    system('perl b.pl');
b.pl
    print `cwd`;
    require "conf/cf.pl";
cf.pl
    $var = "val";
    1;

这是目录设置。

testdir/a.pl
testdir/b.pl
testdir/conf/cf.pl

我在testdir目录下,运行命令:

perl a.pl

不行
testdir
Can't locate conf/cf.pl in @INC...

为什么不能找到包含文件,即使当前目录是正确的?

您使用的是哪个版本的Perl ?作为对CVE-2016-1238的响应,从@INC中删除当前目录正在进行中。尝试在链的每个部分打印@INC的值来验证这一点。

要改变这种情况,可以故意在@INC中添加一个目录。

也许命令'cwd'是问题所在。你的Linux系统中有这个命令吗?我假设你在linux上运行这个。无论如何,尝试更改为'pwd'。

最新更新