我正在清理一些代码,我在服务器日志中看到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.
这似乎是不一致的行为。有人有线索吗? 珍妮
答案 0 :(得分:10)
在perl 5.10中警告(很容易可能)添加了哪个变量为undef的指示(非常欢呼)。您的服务器可能使用较旧的perl。