我清理了一些代码,我在我们的服务器日志的perl错误是看到...在字符串eq中使用未初始化的值。左还是右?
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
你为什么不给出第一个错误行的内容?没有看到任何东西,我猜测你会比较函数调用的结果或散列/数组值查找。也就是说,它不是一个简单的未定义的名为标量。 – unpythonic
你应该**使用诊断**杂注,如果你得到一个你不明白的警告 – yb007