Perl $$var – 两美元的标志作为一个标语?

前端之家收集整理的这篇文章主要介绍了Perl $$var – 两美元的标志作为一个标语?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这似乎是我应该能够容易地使用Google,Bing或DDG的东西,但是我在所有的事情上都完全是空的.

基本上,我的任务是(一部分)重写一套旧的Perl脚本.自己不是一个Perl程序员,阅读这些脚本肯定是一个学习曲线,以弄清楚他们在做什么,但是我用绝对的砖墙打了这样一条线:

$comment = $$LOC{'DESCRIPTION'};

接近我可以看出,右边是一个字典,或者更准确地说,它在该字典中获得了由“DESCRIPTION”键引用的值.但是在这个前面的“额外”美元符号呢?

它看起来像PHPvariable variables可疑,但是在搜索引擎,各种StackExchange网站和perlvar之后,我找不到任何迹象表明Perl甚至有这样的功能,更不用说这是如何被调用的.最糟糕的是,’$’不是变量名中的有效字符,所以我知道$$LOC不仅仅是调用一个恰好被命名为$LOC的变量.

这个额外的美元符号在这里做什么?

解决方法

这是一种替代形式的取消引用.可能(并且诚实地应该)写成:
$LOC->{'DESCRIPTION'};

您有时会看到与其他所有基本数据类型相同的内容

my $str = 'a string';
my %hash = (a => 1,b => 2);
my @array = (1..4);

my $strref = \$str;
my $hashref = \%hash;
my $arrayref = \@array;

print "String value is $$strref\n";
print "Hash values are either $$hashref{a} or $hashref->{b}\n";
print "Array values are accessed by either $$arrayref[0] or $arrayref->[2]\n";

猜你在找的Perl相关文章