将多个值添加到 perl 哈希中的同一个键

kaw*_*her -2 perl hash key

我有两个哈希。

%哈希1:

cavallaro; amg; 
gariboldi; amg; 
dalfabbro; mdg_dig; 
valerio; apb_fmtrd; 
Run Code Online (Sandbox Code Playgroud)

%hash2 :

cavallaro; 32; 
gariboldi; 6; 
dalfabbro; 62; 
valerio; 19; 
Run Code Online (Sandbox Code Playgroud)

我想通过这样的键组合它们;

cavallaro; 32; amg; 
gariboldi; 6; amg; 
dalfabbro; 62; mdg_dig; 
valerio; 19; apb_fmtrd;
Run Code Online (Sandbox Code Playgroud)

我将如何为同一个键添加多个值。请,任何建议将不胜感激。

cho*_*oba 5

您可以在每个键上存储一个数组引用:

#! /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;
Run Code Online (Sandbox Code Playgroud)

输出:

$VAR1 = {
          'gariboldi' => [
                           '6',
                           'amg'
                         ],
          'valerio' => [
                         '19',
                         'apb_fmtrd'
                       ],
          'dalfabbro' => [
                           '62',
                           'mdg_dig'
                         ],
          'cavallaro' => [
                           '32',
                           'amg'
                         ]
        };
Run Code Online (Sandbox Code Playgroud)

  • 对于一个新问题,提出一个新问题。 (9认同)