在
use strict;
use warnings;
my $foo = undef;
表达式
$foo . ''
和
"$foo"
都产生
Use of uninitialized value $foo in ... at ...
但是下面的表达式给出了没有警告的空字符串:
$foo x 1
任何人都知道为什么?我的意思是,有一个很好的字符串化习语($_ x 1
比defined ? "$_" : ''
短得多)很酷,但感觉有点奇怪。
答案 0 :(得分:9)
我曾经在法学院的课堂上看过一个场景。导师向他的学生提出了两个类似的案例,并询问他们为什么会导致不同的裁决。这是因为裁决是由法官做出的,而法官是人,他最终解释道。
那应该警告。在Perl上工作的开发人员就是人。如果您愿意,可以运行perlbug
发送错误报告。