加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:14:52 所属栏目:大数据 来源:网络整理
导读:这似乎是我应该能够容易地使用Google,Bing或DDG的东西,但是我在所有的事情上都完全是空的. 基本上,我的任务是(一部分)重写一套旧的Perl脚本.自己不是一个Perl程序员,阅读这些脚本肯定是一个学习曲线,以弄清楚他们在做什么,但是我用绝对的砖墙打了这样一条线
这似乎是我应该能够容易地使用Google,Bing或DDG的东西,但是我在所有的事情上都完全是空的.

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

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

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

它看起来像PHP的variable 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 $$strrefn";
print "Hash values are either $$hashref{a} or $hashref->{b}n";
print "Array values are accessed by either $$arrayref[0] or $arrayref->[2]n";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读