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] }
コメント