在字符串eq.left或right中使用未初始化的值



我正在清理一些代码,我在服务器日志中看到perl错误是。。。

Use of uninitialized value in string eq at .....

看看代码,行看起来是这样的。。。。

if ($level1 eq $level2) {

好的,很公平。我想我的问题是这样的。问题出在$level1还是$level2?

我写了一个快速测试,试图在本地复制它,它看起来是这样的。。。。

#!/usr/bin/perl
use warnings;
my $a;
my $b;
if ($a eq $b){
    print "....";
}

我得到了一个信息量更大的错误。

Use of uninitialized value $a in string eq at ./warntest.cgi line 7.
Use of uninitialized value $b in string eq at ./warntest.cgi line 7.

这似乎是不一致的行为。有人知道线索吗?Janie

在perl5.10中,哪个变量未定义的指示被添加到了警告中(在可能的情况下)(非常令人高兴)。您的服务器可能使用了一个较旧的perl。

最新更新