下
use strict; use warnings; my $foo = undef;
表达
$foo . ''
和
"$foo"
都产生
Use of uninitialized value $foo in ... at ...
但是下面的表达式给出了空字符串,并且没有警告:
$foo x 1
有人知道为什么我的意思是,有一个很好的字符串习惯($ _ x 1比定义的更短?“$ _”:“)很酷,但感觉有点奇怪。
解决方法
我曾经在法学院课上看到一个场面的表演。导师向学生们介绍了两个类似的案例,并问他们为什么会导致不同的裁决。这是因为裁判是由法官作出的,法官是人,他最后解释说。
应该警告。在Perl上工作的开发人员是人。运行perlbug发送错误报告,如果你愿意的话。