这是我的Perl代码:
use strict;
use warnings;
my @words = ("alpha", "bravo", "charlie");
(my $word = $_) foreach @words;
print $word;
我希望这段代码可以做以下两件事之一:
$word
的最终值。my $word
是一个词法变量,其范围是foreach
循环;它不存在于最后一行。相反,似乎$word
的值为undef
,Perl会发出警告并打印空字符串。
为什么?
答案 0 :(得分:6)
注意:my,state或我们使用语句修饰符条件或循环结构修改的行为(例如,我的$ x if ...)是 undefined 。 my变量的值可以是undef,任何先前分配的值,或者可能是其他任何值。不要依赖它。 perl的未来版本可能会与您尝试使用的perl版本有所不同。这是龙。