2017-04-06 94 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 –