我有以下文件。
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...
为什么即使当前目录正确,它也找不到包含文件?
这是在Kali Linux上。
答案 0 :(得分:3)
您使用的是哪个版本的Perl?作为对CVE-2016-1238的回复,有一些事情要从@INC
中删除当前目录。尝试在链的每个部分打印@INC
的值以验证这一点。
要更改此设置,您可以deliberately add a directory to @INC
。
答案 1 :(得分:-1)
也许命令' cwd'是问题。你在Linux中有这个命令吗?我假设你在linux上运行它。无论如何,尝试改为' pwd'。