关于Perl中哈希引用的用法

ask*_*ker 1 perl

这报告syntax error:

$hash={a=>2};
print %{$hash}{a};
Run Code Online (Sandbox Code Playgroud)

但这有效:

print each(%{$hash})
Run Code Online (Sandbox Code Playgroud)

为什么??

yst*_*sth 5

要从hashref获取元素,可以使用正常代码获取哈希元素:$foo{'bar'},并使用hashref:替换哈希的名称,不包括sigil $$hash{'bar'}.您%将只用于取消引用完整哈希值,就像在每种情况下一样,而不仅仅是元素.

更多有用的提示http://perlmonks.org/?node=References+quick+reference.