Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Сортировка хеша хешей по значению


Автор: comhunt 15.9.2013, 11:58
Имеется хеш хешей
my %hash;
$hash{1}{aaa}=1;
$hash{1}{ccc}=3;
$hash{1}{ddd}=4;

$hash{2}{aaa}=7;
$hash{2}{ccc}=6;
$hash{2}{ddd}=5;

$hash{4}{aaa}=8;
$hash{4}{ccc}=3;
$hash{4}{ddd}=7;

Каким образом сформировать цикл в котором хеш сортировался бы по значению элемента хеша имеющего ключ {...}{ccc}?

С простым ("одномерным") хешем в принципе понятно как сортировать
foreach my $key(sort $hash{$a} <=> $hash{$b} keys %hash){...}

А вот с хешем хешей не могу сообразить как...

Автор: Jimy 15.9.2013, 13:14
Код

sort {$hash{$a}{'ccc'} <=> $hash{$b}{'ccc'}}

Автор: noize 16.9.2013, 10:02
http://noize85.blogspot.ru/2013/04/perl.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)