Forum Webscript.Ru

Программирование => Perl => Тема начата: Timofey от 09 Ноября 2001, 16:51:55

Название: сортировка хэша
Отправлено: Timofey от 09 Ноября 2001, 16:51:55
Есть хэш,типа
$my{1}=343;
$my{2}=3343;
$my{3}=3453;
$my{4}=3343;

как его отсортировать по значениям,так чтобы знать
клю и значение отсортированных элементов,т.е.

foreach $value(sort values %my)
{
print"$value\\n";
}

не подходит,т.к. неизвестны ключи элементов
Название: так может?
Отправлено: Green Kakadu от 09 Ноября 2001, 17:04:13
foreach my $key(sort{$my{$a}<=>$my{$b}} keys %my){
    print $key, \' => \', $my{$key};
}

по возрастанию.
по убыванию:
$my{$b}<=>$my{$a}

строковая сортировка по кодам:
$my{$a} cmp $my{$b}
Название: сортировка хэша
Отправлено: vladsu от 09 Ноября 2001, 18:35:53
Hi.

tebe eto nuz\'no?

###############################
%h=(1 => 343
        ,2 => 3343
        ,3 => 3453
        ,4 => 3343);

foreach my $value (sort { $h{$a} cmp $h{$b} } keys %h){
                               print "$value -> $h{$value}\\n";
}
###############################
Название: сортировка хэша
Отправлено: vladsu от 09 Ноября 2001, 18:38:51
O opozdal :)