2017-06-12 131 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

相关问题