为什么Perl的字符串乘法不会对undef发出警告?

时间:2012-10-09 13:45:49

标签: perl warnings undef

use strict;
use warnings;
my $foo = undef;

表达式

$foo . ''

"$foo"

都产生

Use of uninitialized value $foo in ... at ...

但是下面的表达式给出了没有警告的空字符串:

$foo x 1

任何人都知道为什么?我的意思是,有一个很好的字符串化习语($_ x 1defined ? "$_" : ''短得多)很酷,但感觉有点奇怪。

1 个答案:

答案 0 :(得分:9)

我曾经在法学院的课堂上看过一个场景。导师向他的学生提出了两个类似的案例,并询问他们为什么会导致不同的裁决。这是因为裁决是由法官做出的,而法官是人,他最终解释道。

那应该警告。在Perl上工作的开发人员就是人。如果您愿意,可以运行perlbug发送错误报告。