我想要这小段代码片段来显示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