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

perlで「フォルダ内画像一覧を表示する」をファイル名順に並べたい

フォルダ内の画像一覧を表示させようとしています。

$dir = './images/';
opendir(DIR, "$dir");
while ($_ = readdir(DIR)) {
if (substr($_,-4,4) eq "\.jpg") { # jpgだけ出力
print<<"EOM";
<li><a href="$dir/$_" class="fb" rel="g1"><IMG SRC="./$dir/$_"></a></li>
EOM
}
}
closedir(DIR);
------------
よく見ると、ファイル名順に並んでいませんでした。(アップした日付順になってる?)
これをファイル名順に並べ替えるにはどうしたら良いですか?


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

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

http://stackoverflow.com/questions/436189/how-can-i-read-the-files-in-a-directory-in-sorted-order#answer-436286


匿名質問者さんのコメント
返答ありがとうございます。 やってみましたが、変化なしです。(並び順が変わらない) また、「$a <=> $b」を「$b <=> $a」にもしてみましたが動きがありません。 $dir = './images/'; opendir(DIR, "$dir"); my @files = sort { $b <=> $a } readdir(DIR); while (my $name = shift @files ) { if (substr($_,-4,4) eq "\.jpg") { # jpgだけ出力 print<<"EOM"; <li><a href="$dir/$name" class="fb" rel="g1"><IMG SRC="./$dir/$name"></a></li> EOM }

匿名回答1号さんのコメント
並べ替えた名前が入っているのは $name ですよ。

匿名質問者さんのコメント
原因わかりました。画像にアルファベットが入ってたのでこれでは動かなかっただけでした。 cmpに変えたら意図していた通りに表示しました。
関連質問

●質問をもっと探す●



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