在如下的脚本中,是否可以在不删除'my'的情况下有效地仅仅声明'var'一次并使其在BEGIN块之外可见?
echo -e "\n\n\n" | \
perl -lne 'BEGIN { my $var="declared & initialized once" } print $var'
Run Code Online (Sandbox Code Playgroud)
另外,为什么在没有'my'的情况下声明var会使它在BEGIN块之外可见?
Zai*_*aid 14
my $var;在BEGIN块之前放置一个:
$ perl -le 'my $var; BEGIN { $var = "declared"; } print $var;'
declared
Run Code Online (Sandbox Code Playgroud)
my给出变量词法范围,因此$var在BEGIN块外的示例中没有定义.my有效地删除它使它成为一个全局变量,可以在赋值后通过脚本访问它.