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"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |