以下摘录从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