|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry Liakh 2:5020/400 04 Jul 2001 20:58:56 To : All Subject : Re: сложная сортировка -------------------------------------------------------------------------------- Доброго времени суток! Если я правильно понял вопрос, то IMHO(!) надо делать что-то типа этого: --------------------[cut from saigo.pl]-------------------- #!/usr/bin/perl #Здесь указан номер колонки, по которой сортировать $order = 0; #читаем из файла open NEWS, '<news.txt' || die "Can't open file: $!"; while(<NEWS>){ chomp; push @news, [split /:::/]; }; close NEWS || die "Can't close file: $!"; #сортируем и печатаем foreach(sort {$$a[$order] cmp $$b[$order]} @news){ #названия полей уже сама подставишь print join(':::', @$_) , "\n"; }; --------------------[/cut from saigo.pl]------------------- почитай perldoc -f sort и perldoc perllol. А можно ещё man sort и ничего ни писАть ;-) Saigo <saigo@peterlink.ru> wrote: > > добрый день. > > помогите, пожалуйста, решить следующую проблему: > > open(NEWS_TXT_FILE,"< news.txt") or die "can't find news.txt"; > while (<NEWS_TXT_FILE>) > { > chomp; > ($id,$data,$author,$text)=split(/:::/,$_); > $info{$id}=$data.":::".$author.":::".$text; > } > close(NEWS_TXT_FILE); > > foreach $id (keys %info) > { > ($data,$author,$text)=split(/:::/,$info{$id}); > print "id=$id data=$data author=$author text=$text \n"; > } > > мне нужно в разных случаях выводить строки отсортированными как по ключу, так > и по дате. как вывести строки отсортированными по значению $data ? или может > быть по-другому хранить данные. заранее спасибо за помощь. Евгения -- WBR Dmitry --- ifmail v.2.15dev5 * Origin: Hansa (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/17301915367df.html, оценка из 5, голосов 10
|