這裏是我的Perl代碼:爲什麼這個詞彙變量在循環後沒有保留它的值?
use strict;
use warnings;
my @words = ("alpha", "bravo", "charlie");
(my $word = $_) foreach @words;
print $word;
我希望這個代碼做兩件事情之一:
- 打印字符串「查理」,這是
$word
最終值在循環後做完了。 - 抱怨編譯錯誤,因爲
my $word
是一個詞法變量,其範圍是foreach
循環;它不存在於最後一行。
相反,它似乎的$word
值undef
和Perl提出了警告,並打印出空字符串。
爲什麼?
我有點驚訝'警告'或'strict'沒有抱怨,因爲對我來說,這看起來像變量不再在範圍內。 – Sobrique 2014-10-06 11:34:42