这是数组,哈希还是标量?

Jim*_*Jim 3 perl

我是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}.

在这里查看更多细节.