perl如何识别变量的结尾?
例如,此代码:
use warnings;
my $a = 10;
print "Value of a is $a:::";
输出:
Use of uninitialized value $a:: in concatenation (.) or string at tryprint.pl line 6.
Value of a is :
为什么考虑$ a ::而不是$ a:或$ a :::
这有效:
print "Value of a is $a\:::";
打印:
Value of a is 10:::
答案 0 :(得分:7)
::
用于打印/访问包/符号表中的变量。例如,要访问包abc中的标量变量x,Perl使用$abc::x
,其中abc
是符号表的名称,x
是变量。同样,当您使用$a:::
时,Perl认为有一个名为“a
”且变量名称为:
的软件包,因此存在错误。
请参阅以下示例:
our $a = 10;
{
my $a=20;
print "lexical a is $a \n";
print "Value of a is $main::a";
}