2017-04-06 98 views
0

我有以下阵列...迭代哈希设置

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的版本18

回答

1

分配到一个哈希—东西,你正在做的环—替换其内容的每遍。与

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

更换

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

或者,

my %hash = map { split } @array; 
+0

我用了另外的选择取代一切,它完美的作品! @ikegami –