如何在perl中打印匿名哈希的哈希?

时间:2013-07-24 09:58:22

标签: perl-data-structures

如果哈希结构如下,我将如何得到宝石的价值?

%HoA = 
(
[stones    => "ruby"],
[metal     => "gold"],
);

我正在尝试使用“print $ HoA-> {stones};”,但不会返回任何值。

1 个答案:

答案 0 :(得分:1)

问题是%HoA的成员是数组,而不是哈希。实际上,你所拥有的是一个带有一个元素的哈希。该元素的关键是对包含两个元素的数组的引用:" stone"和"红宝石"。该元素的值是对包含两个元素的数组的引用:" metal"和"黄金"。

我猜你想要一个包含石头列表,金属列表等的哈希。这样做的方法是:

%HoA = 
(
    stones    => ["ruby"],
    metal     => ["gold"],
);

现在$ HoA {stones}是对包含单个元素" ruby​​"的数组的引用。

print @($HoA{stones});

应该给你:

ruby