2014-01-08 146 views
0

如何基于公共密钥的哈希值的哈希值相结合,如何在哈希值的哈希值基于公共密钥

结合子值让我们说:

%hash1 = {'abc'=>{'name'=>'xyz','address'=>'zbt'}} 

%hash2 = {'abc'=>{'age'=> 25, 'gender' => 'male'}} 

我如何结合这两个哈希,以便它变得像下面?

%hash3 = {'abc'=>{'name'=>'xyz','address'=>'zbt','age'=>25,'gender'=>'male'}} 

如果有人能告诉我如何使用Perl标准模块来做到这一点, 我使用Perl 5.8版

感谢

回答

0
my %hash1 = ('abc'=>{'name'=>'xyz','address'=>'zbt'}); 
my %hash2 = ('abc'=>{'age'=> 25, 'gender' => 'male'}); 

my %hash3 = map { 
    $_ => { 
    %{ $hash1{$_} }, %{ $hash2{$_} } 
    } 

} keys %hash1; 

$hash2{$_}的优先级高于$hash1{$_}当他们的密钥冲突。

0

那么如果你有兴趣使用内置的模块,你可以用哈希去::合并

在上述模块可以合并两个散列,并指定你想要的行为,当两个散列之间的键冲突。

选项Retainment优先级不正是你想要什么,会合并第一级散柜面键擦出click here