Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.11.2002, 12:09
SPV вне форума Посмотреть профиль Отправить личное сообщение для SPV Найти все сообщения от SPV
  № 2  
SPV
 
Аватар для SPV

Регистрация: Jan 2000
Адрес: St-Petersburg
Сообщений: 1,229
Отправить сообщение для SPV с помощью ICQ
Если не заморачиваться с хэшами, многомерными массивами, объектами и т.п. то вот простой вариант:
Код:
$datafile = "Ваня|10|Москва\n".
            "Петя|5|Уфа\n".
            "Иван|7|Питер";
@data = split(/\r?\n/,$datafile);
@sortdata = &mysort(1,1,0,@data);
...
exit;

sub mysort {
  my $field = shift; # - номер поля для сортировки
  my $type = shift; # - тип поля (0-стринг, 1-число)
  my $revers = shift; # - 1=обратная сортировка
  my @result = @_;
  if ($type) {
    @result = sort {
      my @data1 = split(/\|/,$a);
      my @data2 = split(/\|/,$b);
      return $data1[$field]<=>$data2[$field];
    } @result;
  } else {
    @result = sort {
      my @data1 = split(/\|/,$a);
      my @data2 = split(/\|/,$b);
      return ($data1[$field] lt $data2[$field]) ? -1 : ($data1[$field] gt $data2[$field]) ? 1 : 0;
    } @result;
  }
  @result = reverse @result if ($revers);
  return @result;
}
__________________
Two beer or not two beer?...

Создать новую тему   Часовой пояс GMT +4, время: 14:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.