以下摘錄從perldoc perlmod
採取:哪些標識符被認爲是動態的?
的
package
語句聲明的編譯單元在給定的命名空間之中。所述package
聲明的範圍是從聲明本身通過封閉塊,eval
,或文件的末尾,以先到者爲準(相同範圍作爲my
()和local
()運算符)。未限定的動態標識符將位於此名稱空間中,除了那些少數標識符(如果不合格),默認爲主包而非當前標識符,如下所述。上述
在「不合格動態標識符」短語的術語「動態」似乎是指未在封裝與my
前綴變量。也就是說,在下面的代碼片段中,$v1
被認爲是一個動態標識符。是對的嗎?
package Package_1;
$v1 = "v1_val";
my $v2 = "v2_val";
它也可以是一個詞法變量,如果在'package'語句之上的'my $ v1'聲明與片段相同的文件中聲明的話。參見文檔[包(http://perldoc.perl.org/functions/package.html)和[在Perl的變量範圍](http://perlmaven.com/scope-of-variables-in-perl )更多信息 –
@Chudong:我認爲* dynamic *的想法在這裏被濫用。目前還不清楚是否是*標識*是動態的(所有的Perl標識符是靜態的)或*值*該標識符是指(大多數Perl值是動態的)。你需要知道什麼? [[*] Perl和''''有什麼區別?](http://stackoverflow.com/questions/845060/what-is-the-difference-between-my-and-our-in -perl/845382?s = 7)幫助你? – Borodin
@Borodin,如你所說,我想知道這裏「動態」這個詞是什麼意思。 – Chudong