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