Perl版本更改?[重复]

brvekthn  于 2022-12-27  发布在  Perl
关注(0)|答案(1)|浏览(176)

此问题在此处已有答案

Doesn't Perl include current directory in @INC by default?(3个答案)
2天前关闭。
我在20年前写了一些perl cgi。他们工作得很完美...直到我的托管公司上周更新了我的机器。一个Perl cgi阻塞了。看起来是因为下面的序列:

require "quiest.htm";
require "quiest.pay";
require "quiest.ent";

不再理解为“在同一目录中使用这三个脚本”。
哪一项是正确的?
我尝试了很多其他的方法,比如重新加载、站点重组等等(这个脚本是由一个请求用户输入的HTML页面调用的),所有的结果都是“site.tld\nameof.cgi?string=xxxxx 404”。

myzjeezk

myzjeezk1#

他们在Perl 5.26中从@INC中删除了当前目录(.)。
上面的链接包括一些解决方案:

  • 可以将PERL_USE_UNSAFE_INC环境变量设置为1
  • 手动将安全路径添加到@INC
BEGIN {
    my $dir = "/some/trusted/directory";
    chdir $dir or die "Can't chdir to $dir: $!\n";
    # safe now
    push @INC, '.';
}

另外,正如@ikegami在评论中提醒我的那样,FindBin是存在的:

use FindBin;
use lib $FindBin::Bin;

相关问题