迭代哈希设置

时间:2017-04-06 21:51:21

标签: arrays perl hash hashtable

我有以下数组...

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

1 个答案:

答案 0 :(得分:1)

分配一个哈希 - 你正在进行循环的每次传递 - 替换它的内容。取代

%hash = ("$split[0]", "$split[1]");

$hash{$split[0]} = $split[1];

或者,用

替换所有内容
my %hash = map { split } @array;