请建议。
for my $record (@item) {
for my $int (@$record){
# DEBUG( "DEBUG:: $record and $int");
my %data = ( $record , $int );
}
}
}
记录就像
abc ,china
abc ,japan
abc , italy
abc , singapore
print Dumper %data;
output :
abc , singapore
现在问题是当我转储输出时它显示我在哈希表中的最后一个记录条目。可能是因为唯一键。
请建议。
答案 0 :(得分:2)
两个问题:
您正在循环的每次迭代中重新创建哈希。正确的方法是
my %data;
for my $record (@item) {
for my $int (@$record){
$data{$record} = $int;
}
}
哈希键必须是唯一的。像
这样的哈希是不可能的( abc => 'china',
abc => 'japan' )
但是,您可以使用数组哈希。只需用
分配给它push @{ $data{$record} }, $int;
它将创建以下结构:
( abc => [ 'china', 'japan', 'italy', 'singapore' ] )