我引用了像这样的哈希数组
[
{
'parameters' => '',
'default_init_for_config' => '1',
'name' => 'CWG.BasicCmode.sim',
'init' => 'config/CWG.BasicCmode.sim'
},
{
'parameters' => '',
'default_init_for_config' => '0',
'name' => 'CWG.BasicCmode.MFA.sim',
'init' => 'config/CWG.BasicCmode.MFA.sim'
},
{
'parameters' => '',
'default_init_for_config' => '0',
'name' => 'NoInit',
'init' => 'config/NoInit'
},
{
'parameters' => '',
'default_init_for_config' => '0',
'name' => '2Vsim.mcc',
'init' => 'config/2Vsim.mcc'
},
]
我想单独提取键name
的值并将其分配给同一数组。
我删除了所有其他键,并得到了这样的内容:
[
{
'name' => 'CWG.BasicCmode.sim'
},
{
'name' => 'CWG.BasicCmode.MFA.sim'
},
{
'name' => 'NoInit'
},
{
'name' => '2Vsim.mcc'
},
{
'name' => 'FakeAFF_HA.sim'
},
{
'name' => 'ISCSI.sim'
},
{
'name' => 'CWG.ExtendedCmode.sim'
},
{
'name' => 'CWG.BasicCmodeNonHA.sim'
},
{
'name' => '2Vsim.FakeAFF.mcc'
},
]
现在如何进行?
输出应为
[
'CWG.Basicmode.sim',
'CWG.BasicCmode.MFA.sim',
'NoInit',
...
]
答案 0 :(得分:4)
要将哈希数组转换为要根据给定键的哈希值构造的标量值的普通数组,可以使用map
。例如,假设每个哈希都有一个name
键,我们可以将所有这些键的值放在新的arrayref中,如下所示:
my $new_array_ref = [map { $_->{name} } @$array_ref];