.pl
サブディレクトリのコンテンツを含むディレクトリ全体のコンテンツをスキャンし、 Perlを使用してディレクトリ内の最新のファイルを見つけるにはどうすればよいですか?
.pl
ディレクトリツリー内のすべてのファイルの完全なファイルパスのソートされた配列/リストを作成したいと思います。
したがって、たとえば、ベースディレクトリがそのディレクトリ内のファイルとそのパス内のサブディレクトリ/home/users/cheeseconqueso/
を検索し、ファイルを日付で並べ替える場合です。.pl
.pl
最終結果は配列になります@pl_paths
。ここで、$pl_paths[0]
は次のようになります。/home/users/cheeseconqueso/maybe_not_newest_directory/surely_newest_file.pl
その結果からファイルを実行したいのですが、ソートされた配列がわかれば、でファイルを実行しても問題ないと思います$pl_paths[0]
。
SOについても同様の質問があり、自分のニーズに合わせて変更しようとしていますが、明らかな理由で今ここにいます。
1つのディレクトリでのみ最新のファイルNAMEを取得するために使用しているコードは次のとおりです。
opendir(my $DH, $DIR) or die "Error opening $DIR: $!";
my %files = map { $_ => (stat("$DIR/$_"))[9] } grep(! /^\.\.?$/, readdir($DH));
closedir($DH);
my @sorted_files = sort { $files{$b} <=> $files{$a} } (keys %files);
print $sorted_files[0]."\n";