我有以下文件:
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'。