Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     29 Oct 2002  22:24:14
 To : "Nurlan Mukhanov"
 Subject : Re: 'sort values %hash' не работает
 -------------------------------------------------------------------------------- 
 
 Nurlan Mukhanov <nurlan@otdyh.kz> wrote:
 
 NM> Hello, All!
 
 NM> Есть такой вот простой код:
 NM> ============================================
 NM> foreach (sort keys %hash) {
 NM>     next unless $hash{$_};
 NM>     print pack("A30",$_)."=>  \"".pack("A30",$hash{$_})."\",\n";
 NM>     print QQQ "'".pack("A30","$_'")."=>  \"$hash{$_}\",\n";
 NM>     $i++;
 NM> };
 NM> ============================================
 NM> Все работет прекрасно! Hо почему-то "sort values %hash" не работает вообще.
 
 Потому что использовать значения в качестве индексов - бессмысленно.
 
 Что делает конструция
 
 sort keys %hash, вернее sort(keys(%hash)) - она сначала получает
 список ключей хэша, потом подвергает их сортировке.
 
 В результате переменная цикла ($_) пробегает значения всех ключей по
 очереди.
 
 А что делает sort(values(%hash)) - возвращает упорядоченный список
 значений. Их ассоциация с ключами уже потеряна.
 Тебе нужно сортировать ключи в порядке возрастания значений, а не
 сортировать значения
 
 sort {$hash{$a} cmp $hash{$b} keys %hash
 -- 
 Hу какой я, к черту, линуксоид? У меня даже Жигули на солярке!
 --- ifmail v.2.15dev5
  * Origin: Free Net of Leninsky,45 (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 \'sort values %hash\' не работает   Nurlan Mukhanov   29 Oct 2002 15:24:07 
 Re: \'sort values %hash\' не работает   Victor Wagner   29 Oct 2002 22:24:14 
Архивное /ru.perl/15178c93e188d.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional