20

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

$foo . ''

"$foo"

両方が生成します

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

しかし、次の式は警告なしに空の文字列を提供します。

$foo x 1

誰もが理由を知っていますか?つまり、素敵な文字列化のイディオム($_ x 1よりもかなり短いdefined ? "$_" : '')があるのはクールですが、少し奇妙に感じます。

4

1 に答える 1

9

私はかつて法科大学院の授業でシーンのあるショーを見たことがあります。インストラクターは、2つの類似したケースを生徒に提示し、なぜそれらが異なる判決をもたらしたのかを尋ねました。判決は裁判官によってなされたものであり、裁判官は人であるためだと彼は最終的に説明した。

警告する必要があります。Perlで作業する開発者は人です。必要に応じて、実行perlbugしてバグレポートを送信します。

于 2012-10-09T18:00:46.740 に答える