В Perl'е, у меня есть хэш, который выглядит следующим образом:Сортировка хэш-ключи вложенной хэш
$hash{key1}->{a} = 1;
$hash{key1}->{b} = 3;
$hash{key2}->{a} = 4;
$hash{key2}->{b} = 7;
$hash{key3}->{a} = 2;
$hash{key3}->{b} = 5;
Как я могу сортировать ключи этого хэш-значением ключа a
. Например, сортировка вышеуказанного хэша в числовом порядке возрастания значениями a
даст: key1, key3, key2.
Убедившись в «правиле стрелки» ['perldoc perlreftut'] (http://perldoc.perl.org/perlreftut.html#Arrow-Rule), вам не нужен какой-либо из' -> 'в вашем примере , Это создает более чистые многоуровневые хеши. –
@JoelBerger: Забавно, что вы думаете, что удаление -> делает выражение более читаемым. Я, как известно, представлял -> между компонентами сложного выражения только по той же причине: сделать его более читаемым. Думаю, читаемость в глазах смотрящего :) –
@PrakashK, безусловно, глаз смотрящего. Обычно мое правило: никакие стрелки для чисто структур данных (особенно одного и того же типа, то есть HoH или AoA и т. Д.), Всегда стрелки для вызова/разыменования подпрограмм и все, что чище для чего-либо еще. –