perl如何在打印时识别变量的结尾?

时间:2013-04-18 06:38:56

标签: perl

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:::

1 个答案:

答案 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";
}