2017-06-12 62 views
-2

我有兩個哈希值。將多個值添加到perl hash中的同一個鍵

%HASH1:

cavallaro; amg; 
gariboldi; amg; 
dalfabbro; mdg_dig; 
valerio; apb_fmtrd; 

%HASH2:

cavallaro; 32; 
gariboldi; 6; 
dalfabbro; 62; 
valerio; 19; 

我想通過這樣的關鍵combinate他們。

cavallaro; 32; amg; 
gariboldi; 6; amg; 
dalfabbro; 62; mdg_dig; 
valerio; 19; apb_fmtrd; 

如何爲同一個鍵添加多個值。 請,任何建議將不勝感激。

+0

http://perldoc.perl.org/perldsc.html – toolic

+0

凡在你的榜樣,你需要同一個鍵的多個值? – choroba

+0

@choroba是的,我需要同一個鍵的多個值。 – kawther

回答

4

您可以在每個鍵存儲數組引用:

#! /usr/bin/perl 
use strict; 
use warnings; 

my %hash1 = qw(cavallaro amg 
       gariboldi amg 
       dalfabbro mdg_dig 
       valerio apb_fmtrd); 

my %hash2 = qw(cavallaro 32 
       gariboldi 6 
       dalfabbro 62 
       valerio 19); 

my %r; 
for my $k1 (keys %hash1) { 
    $r{$k1} = [ $hash2{$k1}, $hash1{$k1} ]; 
} 

use Data::Dumper; print Dumper \%r; 

輸出:

$VAR1 = { 
      'gariboldi' => [ 
          '6', 
          'amg' 
         ], 
      'valerio' => [ 
         '19', 
         'apb_fmtrd' 
         ], 
      'dalfabbro' => [ 
          '62', 
          'mdg_dig' 
         ], 
      'cavallaro' => [ 
          '32', 
          'amg' 
         ] 
     }; 
+0

請問我該如何做相同的值的總和;像'amg'6 + 32? – kawther

+9

如有新問題,請提出一個新問題。 – choroba

相關問題