LINUX.ORG.RU

Как получить список из такого хэша?

 ,


1

1

Есть хэш в таком виде :

%Hash=('TMP'=>['200_mb','10_m','850_mb'],
       'RH'=>['10_m','surface','500_mb'],
       'PRES'=>['100_mb','300_mb','500_mb']
)
Нужно:
Получить такой список:
@List=('TMP-200_mb','TMP-10_m','TMP-850_mb','RH-10_m',...etc);
Я уже голову сломал: КАК это сделать? Пока для реального случая написал какой-то кошмар из map'ов, split'ов и join'ов, но... подозреваю, что есть метод попроще. Уточню для чего это нужно:
У меня сейчас 2 вложенных цикла: один по ключам хэша, другой по значениям в анонимном списке для каждого ключа. Между циклами ничего интересного не происходит. Вот я и подумал, что было бы неплохо объединить два цикла, убрав вложенность...

Заранее очень признателен за помощь

★★★★★

Заверни кошмар в функцию и забудь

Gvidon ★★★★
()
Ответ на: комментарий от Olegymous

Вот где собака порылась! :)
Я почему-то считал, что map может для каждого $_ возвращать только скалярное значение, а здесь он для каждого ключа возвращает список. То есть внешний map как-то сам «объединяет» списки, возвращаемые внутренним map, в один список @l!
Это круто, спасибо большое!

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.