【发布时间】:2017-03-27 12:22:18
【问题描述】:
以下摘自perldoc perlmod:
package语句将编译单元声明为在给定的命名空间中。package声明的范围是从声明本身到封闭块、eval或文件的末尾,以先到者为准(与my() 和local() 运算符的范围相同) .不合格的动态标识符将在此命名空间中,除了那些如果不合格,默认为主包而不是当前包的标识符,如下所述。
上面“不合格的动态标识符”短语中的“动态”一词似乎是指包中没有以my 为前缀的变量。也就是说,在下面的代码 sn-p 中,$v1 被认为是动态标识符。对吗?
package Package_1;
$v1 = "v1_val";
my $v2 = "v2_val";
【问题讨论】:
-
如果由
my $v1在与sn-p 相同的文件中的package语句上方声明,它也可以是词法变量。有关更多信息,请参阅 package 和 Scope of variables in Perl 的文档 -
@Chudong:我认为 dynamic 的概念在这里被滥用了。不清楚是 identifier 是动态的(所有 Perl 标识符都是静态的)还是标识符所指的 value (大多数 Perl 值是动态的)。你需要知道什么? What is the difference between
myandourin Perl? 对您有帮助吗? -
@Borodin,正如你所说,我想知道这里的“动态”一词是什么意思。
标签: perl dynamic identifier