Сортировка ссылки на массив хэшей

У меня возникли проблемы с сортировкой массива ссылок хэшей на основе значения в хеше, структура данных выглядит следующим образом:

my %usera = (name => 'tom',
             weight=> 10);
my %userb = (name => 'harry',
             weight=> 1);
my %userc = (name => 'peter',
             weight=> 5);
my $users = [];
push(@$users,\%usera,\%userb,\%userc);

Я хочу отсортировать результаты по весу по убыванию, так что это вернулось бы в порядке «Том, Питер, Гарри», но мне не очень повезло. Я попытался:

for my $user (sort{ $users->[$a]{'Weight'} <=> $users->[$b]{'Weight'} } @$users){
    .....
}

Что, как я думал, могло бы сработать, но любви здесь не было.

]Есть идеи?

TIA!

0
задан Axeman 5 March 2012 в 15:03
поделиться