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

Ste*_*sky 20 perl warnings undef

use strict;
use warnings;
my $foo = undef;
Run Code Online (Sandbox Code Playgroud)

表达式

$foo . ''
Run Code Online (Sandbox Code Playgroud)

"$foo"
Run Code Online (Sandbox Code Playgroud)

都生产

Use of uninitialized value $foo in ... at ...
Run Code Online (Sandbox Code Playgroud)

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

$foo x 1
Run Code Online (Sandbox Code Playgroud)

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

ike*_*ami 9

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

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