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

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

最佳答案

::用于打印/访问包/符号表中的变量。例如,要访问包 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";
}

关于perl - perl 如何在打印时识别变量的结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076152/

相关文章:

c - 逆向工程 "compiled"Perl vs. C?

perl - 在perl -e行之后使用花括号的目的是什么

javascript - 如何在 javascript 中访问对象的内容?

perl - 在 perl 中合并哈希

regex - 如何在 Perl 中替换连续且相同的字符?

perl - 从 Perl 动态检查可用堆内存

perl - AnyEvent fork_call 和 ping

perl - mro、goto 和 set_subname 如何交互?

javascript - 使用 Perl 提取脚本类型 html/text

perl - 将数组保存到纯文本文件中的问题