0

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

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

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

4

1 回答 1

1

问题是成员%HoA是数组,而不是哈希。事实上,你所拥有的是一个包含一个元素的哈希。该元素的键是对包含两个元素的数组的引用:“石头”和“红宝石”。该元素的值是对包含两个元素的数组的引用:“金属”和“黄金”。

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

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

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

print @($HoA{stones});

应该给你:

ruby
于 2013-07-24T10:12:40.923 回答