如何从这个复杂的人偶结构中提取值

时间:2019-05-14 11:42:02

标签: puppet

我在人偶中有这个数据结构:

Struct[
    'ssh_keys' => Hash[
      String,
      Struct[
        'path'    => String,
        'content' => String,
      ]
    ]
  ] $myStructure

我想将所有“路径”值提取到数组中。

我已经使用

映射了内部Struct。
$testvariable = $myStructure['ssh_keys'].map |$items| { $items[1] }

但是这里有些烂,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

目前尚不清楚您要挂什么,因为您确实已经找到了可行的解决方案的大部分方法。但是,对于散列,我通常更喜欢map()函数的形式,其中lambda带有两个参数,分别是键和值。在这种情况下,这将更清楚地显示:

$testvariable = $myStructure['ssh_keys'].map |$unused, $ssh_key| { $ssh_key['path'] }

但是您还应该能够在原始代码中将$items[1]索引为Struct的哈希($items[1]['path'])。

如果您不能遵守上述$items.dig(1, 'path')数组和哈希索引的混合使用,也可以使用dig()函数。