У меня есть хэш хэшей, вот так:
%hash = ( a => { b => 1, c =>2, d => 3},
a1 => { b => 11, c =>12, d => 13},
a2 => { b => 21, c =>22, d => 23} )
Я хочу извлечь элемент "b" и поместить его в массив. Прямо сейчас я перебираю хеш, чтобы сделать это, но я думаю, что могу немного повысить эффективность, используя вместо этого карту. Я уверен, что если бы это был массив хэшей, я бы использовал что-то вроде этого:
@hasharray = ( { b => 1, c =>2, d => 3},
{ b => 11, c =>12, d => 13},
{ b => 21, c =>22, d => 23} )
@array = map { ($_->{b} => $_) } @hasharray
Простите, если я ошибаюсь, я все еще изучаю, как работает карта. Но то, что я хотел бы знать, - как бы я занялся отображением хэша хэшей? Возможно ли это с помощью карты? Мне еще не удалось найти каких-либо примеров этого.
Еще лучше, следующим шагом в этом коде будет сортировка массива после его заполнения. Я почти уверен, что это возможно, но я не достаточно умен, чтобы использовать карту, чтобы понять это сам. Как мне сделать все это за один раз?
Спасибо.
Сет