我是Perl的新手.我知道这$是一个标量,@一个数组和%一个哈希.
我见过类似的代码(我用内存写的):
$var = {
key => value,
anotherkey => anothervalue
}
这是什么?
Mar*_*eed 12
这声明了一个$var包含对匿名哈希的引用的标量变量.
引用(有点像指针)总是标量,无论它们引用什么.
你也可以这样做:
%hash = ( key => value, anotherkey => anothervalue ); #parentheses, not curlies!
$var = \%hash;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,引用的哈希$var不再是匿名的,但结果是相同的.
您可以通过提取引用散列的单个元素解引用 $var与->应用哈希之前标{... }语法:
$var->{key} # == value, same as $hash{key} in second case
Run Code Online (Sandbox Code Playgroud)
或者您可以通过检索整个事物(并恢复%hash)%{$var}.
在这里查看更多细节.