$list = [
{
Test => “Value”
}
];
Здесь вы устанавливаете $list
в качестве ссылки на массив. Ссылочный массив имеет только один элемент, который является ссылкой на хеш. Кроме того, вы используете неправильные символы кавычки для определения "Value"
- вам нужно использовать прямые кавычки.
my ($get_list_key) = map { $_ } @$list;
Вы разыменовываете ссылку на массив, чтобы получитьмассив, который вы можете использовать с map
. Но, как мы уже говорили выше, единственный элемент в массиве является ссылкой на хеш. В блоке map
вы просто возвращаете $_
, который будет этой хеш-ссылкой, поэтому вы получите одну хеш-ссылку обратно в переменную $get_list_key
.
Вам нужно сделать что-то более умное в map
блок. Вы хотите получить ключи ссылочного хеша. Для этого вам нужно сделать две вещи: 1 / разыменовать ссылку на хэш и 2 / использовать функции keys
.
my ($get_list_key) = map { keys %$_ } @$list;
Это даст вам один ключ («Тест») в вашем$get_key_list
переменная. Но это не то, что вы хотите. Вы хотите ссылку на массив, который содержит все ключи. Для этого вам нужно окружить все выражение в правой части оператора присваивания анонимным конструктором массива ([ ... ]
). Итак, в конце концов, вы получите код в ответе Хокон.
my ($get_list_key) = [ map { keys %$_ } @$list ];