将两个哈希值合并到%hash1中的最佳方法是什么?我总是知道%hash2和%hash1总是有唯一的键。我也喜欢单行代码,如果可能的话。
$hash1{'1'} = 'red'; $hash1{'2'} = 'blue'; $hash2{'3'} = 'green'; $hash2{'4'} = 'yellow';
解决方法
快速回答(TL; DR)
%newHash = (%hash1,%hash2); %hash1 = %newHash; ## or else ... @hash1{keys %hash2} = values %hash2; ## or else ... %hash1 = (%hash1,%hash2)
概述
>上下文:Perl 5.x
>问题:用户希望将两个哈希1合并为一个变量
解
>使用上面的语法简单变量
>对复杂的嵌套变量使用Hash :: Merge
陷阱
>当两个哈希值都包含一个或多个重复键时该怎么做
>如果具有空值的键/值对是否覆盖具有非空值的键值对?
>(注意:原始问题排除了这种情况,但它是一个重要的考虑)
也可以看看
> PM post on merging hashes
> PM Categorical Q&A hash union
> Perl Cookbook 5.10. Merging Hashes
> websearch:// perlfaq“merge two hashes”
> websearch:// perl merge hash
> https://metacpan.org/pod/Hash::Merge
脚注
1 *(aka关联数组或字典)