|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Edward Yudanov 2:5007/11.35 12 Sep 2004 07:40:58 To : Serge Chervjakov Subject : Re: sort [?] -------------------------------------------------------------------------------- Как сейчас помню Sat, 11 Sep 2004 19:33:52 +0800 ты писал(а): EY>> то есть отсортировать сначала по датам, в случае одинаковых дат -- по EY>> адресам. Подскажите как можно отсортировать файл по такому принципу. У EY>> меня получается сортировать только по первому числу, но тогда спутаны все EY>> месяца и по адресам отсортировать не получается :( SC> Вариантов есть несколько.. первый вариант (неправильный, но когда-то давно SC> считал его правильным:) ) - сначала отсортировать по последнему (по SC> адресам), SC> потом получившееся - по датам. Hекрасиво. SC> А нормальный вариант - почитать про sort. В блоке втором что указывается? SC> Фактически - функция сравнения 2 объектов (не важно какой природы - лишь SC> бы SC> можно было указать, какой объект "больше" какой "меньше"). Вот исходя из SC> этого SC> и построй соответствующий блок (split тебе в нем поможет). Hу а если SC> серьезно, SC> то что-нибудь вроде такого: SC> sub sor SC> { SC> my ($adate,$aname,$alname,undef,$aaddr)=split(/ /,$a); SC> my ($bdate,$bname,$blname,undef,$baddr)=split(/ /,$b); SC> $adate cmp $bdate || $aaddr cmp $baddr; SC> } SC> sort sor @arr; SC> ну можно еще сделать сортировку адресов правильную - соответственно чуть SC> придется переписать функцию сравнения... Спасибо, попробую что-нибудь подобное изобразить... -- |> Evanescence - Whisper.mp3 --- slrn/0.9.8.0-Edward (Linux) * Origin: [ RLU #316941 http://fido.khakassia.ru/ ] (2:5007/11.35) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/329968a5fe06.html, оценка из 5, голосов 10
|