人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで日付で並び替えをさせたい。

データ登録順に表示しているのですが、これを日付順(新しいものが上)で掲載させたいです。
ソースは以下のようになっています。
open(IN,"$logfile") || &error("Open Error : $logfile");
$top = <IN>;
while (<IN>) {
($no,$year,$month,$day,$sub,$tail1,$W1,$H1,$date,$url,$view,$past,) = split(/<>/);
?ここに各データを表示?
}
また、日付は$dateに$year/$month/$day(2014/11/11)の形で入っています。
ファイルを開いて表示する前にソートすればいいと言うのは何となくわかるのですが、どのように記述したら良いでしょうか?

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
my @items;
while (<IN>) {
push @items, [split(/<>/)];
}
#foreach (sort {$b->[8] cmp $a->[8]} @items) {
foreach (sort {$b->[1] <=> $a->[1] or $b->[2] <=> $a->[2] or $b->[3] <=> $a->[3]} @items) {
my ($no,$year,$month,$day,$sub,$tail1,$W1,$H1,$date,$url,$view,$past,) = @$_;
#?ここに各データを表示?
}

dateが「2014/01/01」と0パディングしてあるならコメントアウトしてある「sort {$b->[8] cmp $a->[8]} @items」の方でもいけるはず。
http://ideone.com/wtM1Im

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ