如何根据公共密钥
组合哈希哈希值中的值让我们说:
%hash1 = {'abc'=>{'name'=>'xyz','address'=>'zbt'}}
%hash2 = {'abc'=>{'age'=> 25, 'gender' => 'male'}}
如何将这两个哈希值组合起来,使其变为如下所示?
%hash3 = {'abc'=>{'name'=>'xyz','address'=>'zbt','age'=>25,'gender'=>'male'}}
如果有人可以通过使用Perl标准模块向我展示如何操作,则更愿意。 我使用的是Perl Version 5.8
由于
答案 0 :(得分:0)
my %hash1 = ('abc'=>{'name'=>'xyz','address'=>'zbt'});
my %hash2 = ('abc'=>{'age'=> 25, 'gender' => 'male'});
my %hash3 = map {
$_ => {
%{ $hash1{$_} }, %{ $hash2{$_} }
}
} keys %hash1;
$hash2{$_}
在密钥冲突时优先于$hash1{$_}
。
答案 1 :(得分:0)
如果您对使用内置模块感兴趣,可以使用Hash :: Merge
在上面的模块中,您可以合并两个哈希值,并指定当两个哈希值之间的键冲突时所需的行为。
选项保留优先顺序完全符合您的要求,并且会合并第一级哈希,因为密钥冲突click here