gpt4 book ai didi

apache - 我的 Perl 警告是致命的,我不知道为什么

转载 作者:行者123 更新时间:2023-12-02 06:43:36 27 4
gpt4 key购买 nike

我有两台具有相同配置的服务器:httpd + mod_perl(我认为设置 100% 相同),但在一台服务器中我收到了一些 perl 警告,而在另一台服务器中,相同的警告给我带来了 fatal error 。看:

服务器A日志:在

处的数字 eq (==) 中使用未初始化的值

服务器B日志:[Wed Jun 08 14:32:47 2016] [错误] 在字符串 eq 中使用未初始化的值

在服务器 A 中,请求流程继续进行,用户获得所需的结果,但在服务器 B 中,用户收到 500 错误。

我正在使用

use strict;
use warnings;

在两台服务器上的文件中。

有什么想法吗?

导致此警告/致命的代码示例:

$allowed_sellers = any { $_ == $user->{user_id} } (111,123,222,345);

更新:

我在我正在使用的模块中找到了这段代码(Moo):

package Moo::_strictures;
use strict;
use warnings;

sub import {
if ($ENV{MOO_FATAL_WARNINGS}) {
require strictures;
strictures->VERSION(2);
@_ = ('strictures');
goto &strictures::import;
}
else {
strict->import;
warnings->import;
}
}

1;

但是环境变量 MOO_FATAL_WARNINGS 似乎没有定义。有什么想法吗?

已解决:

各位,非常感谢!我们终于发现了问题:在服务器A中,模块Moo的版本是1.003,而服务器B使用的是较新的版本2.000001

最佳答案

Before version 2 ,调用use Moo;启用strictures ,这使得除少数类别之外的所有警告都是致命的。这导致了很多问题*,因此警告在版本 2 及更高版本中不再是致命的。

要修复此问题,请将 Moo 升级到最新版本。当您这样做时,您也应该真正解决警告的原因。

<小时/>

* 请参阅以下讨论:

关于apache - 我的 Perl 警告是致命的,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37711561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com