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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Yury Kopyl                           2:5020/400     25 Feb 2004  22:21:06
 To : milon
 Subject : Re: hard sort
 -------------------------------------------------------------------------------- 
 
 milon -> "Re: hard sort" :
  m> "Yury Kopyl" to "milon"
 
  m>>> здесь $N - количество записей в одном поле или количество строк,
  m>>> коли угодно, а $ref[$i] = \@{ $h{"field$i"} } - ссылка на анонимный
  m>>> массив - их то и может быть сколько угодно.
 
  YK>>>  eval?
 
  m>> дык пробовал я.
  m>> создаю строку - суть контент подпрограммы сортировки.
  m>> типа:
 
  m>> $query = <<'Q';
  m>>     $ref[0]->[$a] cmp $ref[0]->$b         ||
  m>>     $ref[1]->[$a] cmp $ref[1]->$b
  m>> Q
 
  m>> а потом пишу:
 
  m>> @sorted_indexes = sort {
  m>>     eval $query;
  m>> } (0 .. $N);
 
  m>> работает, но неправильно.
  m>> т.е. ошибок нет,  а результат 0..$N.
  m>> список не сортируется.
 
  YK>> use strcit + use warnings - $@ ?
 
  m> в смысле?
  m> ошибок нет - $@ чист.
  m> use strict;
  m> -w все как надо.
  m> мож чо в $query не так.
  m> подозреваю, что $a и $b, в eval не те, как-то он их не видит, что-ли.
 
 можно попробовать заэскейпить, а можно сделать след образом:
 
 @sorted_indexes = sort {cmp($a,$b)} @indexes;
 sub cmp{
     my ($a,$b)=@_;
 
     my $str='return '.q~
     $ref[0]->[$a] cmp $ref[0]->$b         ||
     $ref[1]->[$a] cmp $ref[1]->$b
     ~;
 
     eval $str;
 }
  Yury Kopyl aka hrg | http://id.totem.ru | "Спам придумали боги в отместку
 за наши молитвы."
 
 --- ifmail v.2.15dev5.3
  * Origin: IAC Samara-Internet, Ltd. (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 hard sort   milon   24 Feb 2004 01:05:56 
 Re: hard sort   Yury Kopyl   24 Feb 2004 10:58:42 
 Re: hard sort   milon   25 Feb 2004 16:18:34 
 Re: hard sort   Yury Kopyl   25 Feb 2004 18:37:00 
 Re: hard sort   milon   25 Feb 2004 20:45:45 
 Re: hard sort   Yury Kopyl   25 Feb 2004 22:21:06 
 Re: hard sort   milon   26 Feb 2004 01:55:26 
Архивное /ru.perl/10277d36abe37.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional