匿名質問者匿名質問者回答ポイント なしウォッチ

cgi(perl)で日付順でソートして同じ日付なら登録順にソートする方法


open (FILE, "$data") || &error("error");
@data = <FILE>;
close(FILE);

# カウント除去
$count = shift (@data);
foreach (@data) {
($no,$contents,$date,$year,$month,$day,$comment,$new,$url) = split(/<>/);
@tmp = ();
@tmp = map {(split /<>/)[2]} @data;
@data = @data[sort {$tmp[$b] cmp $tmp[$a]} 0 .. $#tmp];
}
$noが登録順、$dateが日付を8ケタにまとめた物(20161014等)です。

現在、登録日で並べるようにしていますが、同じ日付のものがいくつかあるとその中で変な並びになってしまいます。
日付でソートし、さらに登録順で掲載するにはどのように修正したらよいでしょうか?

ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2016-10-14 14:33:55
終了日時
2016-10-19 09:13:38
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

Perl1679CGI2023URL11376ERROR176

人気の質問

メニュー

PC版