Конвертировать массив хэшей в массив скалярных значений в Perl - PullRequest
0 голосов
/ 05 июля 2018

У меня есть ссылка на массив хэшей, как этот

[
    {
        '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',
    ...
]

1 Ответ

0 голосов
/ 05 июля 2018

Чтобы преобразовать массив хэшей в простой массив скалярных значений, который будет построен из хэшей из данного ключа, вы можете использовать map. Например, предполагая, что у каждого хеша есть ключ name, мы можем поместить значения всех этих ключей в новую ссылку на массив следующим образом:

my $new_array_ref = [map { $_->{name} } @$array_ref];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...