Example:
#! /usr/bin/perl -w
$$var=10;
print "Variable is containing $$var and is of type ". ref($$var)."\n";
Output:
$perl testRefVar.pl
Variable is containing 10 and is of type
此处变量$$ var不是指任何其他变量,而是指常量。那么使用'$$'为变量添加前缀有什么意义吗?
答案 0 :(得分:3)
这与将任何其他变量设置为10相同,只是访问是间接的。
perl将 autovivify 一个匿名标量变量,并将引用分配给$var
,以便可以完成此操作。如果您打印$var
,您将获得类似SCALAR(0x3ecec4)
的内容。
要做到这一点,你可以写
my $temp;
my $var = \$temp;
$$var = 10;
将10分配给变量$temp
。
相反,如果您将$var
设置为对常量的引用,就像这样
my $var = \99;
$$var = 10;
你会收到错误信息
Modification of a read-only value attempted
因为在这种情况下$var
引用常量而不是变量。
答案 1 :(得分:2)
此处,$var
是对标量的引用,$$var
是标量本身。除非您的代码特别需要引用,否则间接(当您需要实际标量时需要使用两个美元符号)至少是一个麻烦的麻烦。