如何使用哈希提取值



我想要这小段代码片段来显示swatkats、popeye、复仇者阵列中的内容,但我无法将其打印为

    %HoA = (
    swatkats    => [ "Tbone", "Razer" ],
    popeye        => [ "Olive", "bluto", "pope" ],
    avengers       => [ "ironman", "hulk", "Blackwidow","cap"]);
    @arr=keys%HoA;
    print "$arr[0]n";
    print "@arr[1]n";
    print "@arr[2]n";

输出为:

swatkats
popeye
复仇者

但预期输出:

Tbone Razer橄榄蓝教皇铁人巨人黑寡妇帽

我在这里做错了什么?

Ps:如何在上面的代码段中添加另一个数组进行哈希。

您要查找的输出将使用生成

%HoA = (
    swatkats => [ "Tbone", "Razer" ],
    popeye   => [ "Olive", "bluto", "pope" ],
    avengers => [ "ironman", "hulk", "Blackwidow", "cap"]);
@arr = keys %HoA;
print join(' ', @{$HoA{$arr[0]}}). "n";
print join(' ', @{$HoA{$arr[1]}}). "n";
print join(' ', @{$HoA{$arr[2]}}). "n";

添加另一个条目的方法是:

$HoA{'new entry'} = [ 1, 2 , 4 ];

HTHGeorge

因为使用了keys关键字而得到的输出,该关键字迭代哈希的键。您可以使用values关键字来迭代值:

my %HoA = (
    swatkats => [ "Tbone", "Razer" ],
    popeye => [ "Olive", "bluto", "pope" ],
    avengers => [ "ironman", "hulk", "Blackwidow","cap"]
);
foreach my $value (values %HoA)
{
    print join(' ', @$value), "n";
}

输出:

ironman hulk Blackwidow cap
Olive bluto pope
Tbone Razer

最新更新