Perlでファイルの最終変更日を取得するにはどうすればよいですか?
最後に変更されたファイルを取得できますが、Perlを使用してディレクトリから同じ日付のファイルが必要です。StackOverflowの質問で最後に変更されたファイルを取得するための解決策があります。Perlのls-lrtの出力からファイル名のみを検索/カットする方法。
ls -lrt
しかし、時間ではなく最新の日付の出力を取得するにはどうすればよいですか?
Perlでファイルの最終変更日を取得するにはどうすればよいですか?
最後に変更されたファイルを取得できますが、Perlを使用してディレクトリから同じ日付のファイルが必要です。StackOverflowの質問で最後に変更されたファイルを取得するための解決策があります。Perlのls-lrtの出力からファイル名のみを検索/カットする方法。
ls -lrt
しかし、時間ではなく最新の日付の出力を取得するにはどうすればよいですか?
これはstat Function
Perl の場合です -- シェル コマンドからの出力の解析は少し移植性がなく、非常に非効率的で、明らかに間違っています。
my $mtime = (stat $file)[9];
本当に絶望的な場合はsplit function
、もちろん、を使用する必要があります。
my $mtimeAsString = join "" (split /\s+/, (`ls -lrt $file`)[0], 8)[5,6];
# using only the first line of input
読みやすさを自由に比較してください…</p>
Perl でファイルの最終更新日を取得するために使用ls -lrt
している場合は、間違っています。
正しい解決策は、stat
関数またはFile::Stat
それをラップするモジュールを使用することです。どちらも、3 つの utimes すべてを含む、ファイルに関する一連のデータを提供します。
stat
伝統的です。標準の組み込みを使用するか
my $mtime = (stat $filename)[9];
または、File::stat
より記憶に残るアクセスを提供する便利なラッパーを使用します
use File::stat;
my $mtime = stat($filename)->mtime;