Perl:将散列引用解引用为标量?

时间:2014-01-23 07:08:24

标签: perl hash dereference

为什么要将哈希引用解引用到哈希&将它分配给标量会给出一个无关的价值(至少对我而言)?

代码:

my $hash = {
        1 => 9,
        2 => 10,
        3 => 11,
        4 => 12,
        5 => 13,
        6 => 14,
        7 => 15,
        8 => 16,
       };

my $dereferenced = %$hash;

print $dereferenced;

Perl版本:5.12.4

操作系统:Windows 7

打印的值是

7/16

是否与Perl内部有关?

1 个答案:

答案 0 :(得分:1)

Scalars不能包含哈希或数组,只能引用它们。

但即使他们可以,当你在标量赋值的右侧使用哈希时,它在 标量上下文 中,并且标量上下文中的哈希产生如果散列为空,则返回false;如果不是,则返回描述散列中桶使用情况的字符串(例如“7/32”)。