在我采取冗长/冗长/不正确的做法之前,我先问这个问题。
我使用的是Perl。我有两个哈希。一个包含默认值,一个可能是用户定义的值,在某些情况下会覆盖默认值。
将这些哈希值加在一起的最简单方法是什么,但是对于我们选择用户值的相同键,存在默认值和用户定义值。
$defaults = {
type => paper,
number => 3
};
$user_defined = {
number => 5
};
所需的最终连接输出/哈希是
$result = {
type => paper,
number => 5,
}
答案 0 :(得分:11)
我用
my $result = { %$defaults, %$user_defined };
答案 1 :(得分:4)
明显的解决方案是正确的解决方案:
$result = { %$defaults, %$user_defined };
答案 2 :(得分:4)
如果您的哈希值具有简单的标量值(即它只有一个深度级别),则提供的答案很好。如果您的哈希可以包含任意深度的其他哈希和数组,那么请查看Hash::Merge作为将信息合并到其中的选项。