2017-06-12 2 views
-2

Ich habe tow Hash.Hinzufügen mehrerer Werte zum gleichen Schlüssel in Perl Hash

% hash1:

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

% hash2:

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

Ich möchte sie so durch Schlüssel combinate;

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

Wie würde ich mehrere Werte für den gleichen Schlüssel hinzufügen. Bitte, alle Vorschläge werden geschätzt.

+0

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

+0

Wo in Ihrem Beispiel benötigen Sie mehrere Werte für den gleichen Schlüssel? – choroba

+0

@choroba Ja, ich brauche mehrere Werte für den gleichen Schlüssel. – kawther

Antwort

4

Sie können an jeder Taste eine Array-Referenz gespeichert werden:

#! /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; 

Ausgang:

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

bitte wie kann ich die summe der gleichen werte machen; wie 'amg' 6 + 32? – kawther

+9

Für eine neue Frage, stellen Sie eine neue Frage. – choroba

Verwandte Themen