木偶:合并哈希列表?

如果我有一个接收哈希variables的puppet类,并且我想为哈希variables中的某些键提供默认值,我可以简单地使用哈希合并( $hash1 + $hash2 )来生成一个新的类默认值。 即,给定:

 defaults: field1: default1 field2: default2 field3: defaul3 myconfig: field1: val1 field3: val3 

然后$defaults + $myconfig给我:

 finalconfig: field1: val1 field2: default2 field3: val3 

但是如果我想用哈希列表完成同样的事情,我该怎么做? 也就是说,如果我的input是:

 myconfig: - field1: custom1 field2: custom2 - field1: custom1 field3: custom3 

我有默认的看起来像:

 defaults: field1: default1 field2: default2 field3: default3 

我想最终:

 finalconfig: - field1: custom1 field2: custom2 field3: default3 - field1: custom1 field2: default2 field3: custom3 

有没有办法在傀儡清单内做到这一点?

这比我想象的要容易得多。 如果我有:

 $defaults = { field1 => default1, field2 => default2, field3 => default3 } 

我可以将这些默认值应用于这样的散列列表

 $finalconfig = $config.map |cfg| { $defaults + $cfg }