こらない

2008-06-11(水)

Perlでファイルを更新日時順にソートして表示

Perlで、あるディレクトリの中のファイルを更新日時順にソートして表示するコードのメモ。

古い順

my $dir = '/Users/officek/Desktop/test';
$dir =~ s/\/$//;
opendir DIR, $dir;
my @files =
    map { $_->[0] }
    sort { $b->[1] <=> $a->[1] }
    map { [ $_, -M "$dir/$_" ] }
    grep ( /^[^.]/, readdir DIR );
close DIR;

for my $file(@files){
    my ($ss, $mm, $hh, $DD, $MM, $YY, $wday, $yday, $isdst) = localtime( ( stat qq|$dir/$file| )[9] );
    $YY += 1900;
    $MM ++;
    printf "%s\t%d-%02d-%02d %02d:%02d:%02d
", $file, $YY, $MM, $DD, $hh, $mm, $ss;
}

新しい順

sortのところを、入れ替える。

    sort { $a->[1] <=> $b->[1] }

コメント