如果在hash
中我有一个键和三个相同键的值。如何保留该密钥的所有三个值?
例如,美国是我的关键,它有三个价值观。
America = Clinton; America = Bush; America = Obama;
if I use while loop `while(($a,$b) = % Country)
{
print "$b\n";
}
它只给了我第一个价值“克林顿”。那么,如何在循环中保留给定键的所有值?请帮帮我。
答案 0 :(得分:4)
以下是使用数组散列的示例:
my %presidents;
while (<DATA>) {
chomp;
my ($country, $president) = split /=/;
push @{$presidents{$country}}, $president;
}
while (my ($country, $prez_ref) = each %presidents) {
print "$country => @$prez_ref\n";
}
__DATA__
America=Clinton
America=Bush
America=Obama
答案 1 :(得分:2)
my %country = (
'America' => ['Clinton', 'Bush', 'Obama'],
'UK' => 'Maggie'
);
while (($a, $b) = each %country) {
print ref $b ? join ", ", @$b : $b, "\n";
}