我有以下数组...
my @array=("100 2", "300 1", "200 3");
从这个数组我想迭代地构造一个哈希。
当前脚本:
my %hash;
foreach (@array) {
my @split = (split /\s+/, $_);
%hash = ("$split[0]", "$split[1]");
}
当前输出:
$VAR1 = {
'200' => '3'
};
这不是我想要的。我的目标是......
目标输出:
$VAR1 = {
'100' => '2'
'300' => '1'
'200' => '3'
};
我需要做什么?
我正在使用:Perl 5,Version 18
答案 0 :(得分:1)
分配一个哈希 - 你正在进行循环的每次传递 - 替换它的内容。取代
%hash = ("$split[0]", "$split[1]");
与
$hash{$split[0]} = $split[1];
或者,用
替换所有内容my %hash = map { split } @array;