3

在我以冗长/冗长/不正确的方式进行此操作之前,我会问这个问题。

我正在使用 Perl。我有两个哈希。一个包含默认值,一个可能是用户定义的值,在某些情况下会覆盖默认值。

将这些哈希连接在一起的最简单方法是什么,但是对于我们选择用户值的同一个键,有一个默认值和用户定义值。

$defaults = {
 type => paper,
 number => 3
};

 $user_defined = {
 number => 5
};

所需的最终联合输出/散列是

$result = {
    type => paper,
    number => 5,
}
4

3 回答 3

11

我用

my $result = { %$defaults, %$user_defined };
于 2013-04-24T17:00:40.917 回答
4

显而易见的解决方案是正确的:

$result = { %$defaults, %$user_defined };
于 2013-04-24T17:01:11.527 回答
4

如果您的散列具有简单的标量值(即只有单层深度),则提供的答案很好。如果您的散列可以包含任意深度的其他散列和数组,请查看Hash::Merge作为将信息合并到其中的选项。

于 2013-04-24T17:20:22.133 回答