從上foreach循環的話題的perldoc perlsyn:在「foreach」循環中會發生什麼樣的本地化?
如果變量之前 我宣佈,它使用 變量而不是全局的, 但它仍然定位於環。
但考慮這個例子:
use Devel::Peek;
my $x = 1;
Dump $x;
for $x (1) { Dump $x }
SV = IV(0x8117990) at 0x8100bd4
REFCNT = 1
FLAGS = (PADBUSY,PADMY,IOK,pIOK)
IV = 1
SV = IV(0x8117988) at 0x8100bf8
REFCNT = 2
FLAGS = (IOK,READONLY,pIOK)
IV = 1
好像這些都不是相同的變量。這是文檔中的錯誤,還是我錯過了什麼?
對,現在你的問題是什麼? – amarillion 2010-02-11 21:55:19
而問題是...? – 2010-02-11 21:56:07
雖然你在思考這個問題,但一定要閱讀:http://perldoc.perl.org/perlsub.html#Temporary-Values-via-local%28%29,也許看看這個:http:// stackoverflow.com/questions/2238576/what-is-the-default-scope-of-foreach-loop-in-perl – 2010-02-11 22:00:05