0

Perlでファイルの最終変更日を取得するにはどうすればよいですか?

最後に変更されたファイルを取得できますが、Perlを使用してディレクトリから同じ日付のファイルが必要です。StackOverflowの質問で最後に変更されたファイルを取得するための解決策があります。Perlのls-lrtの出力からファイル名のみを検索/カットする方法

ls -lrtしかし、時間ではなく最新の日付の出力を取得するにはどうすればよいですか?

4

3 に答える 3

11

これはstat FunctionPerl の場合です -- シェル コマンドからの出力の解析は少し移植性がなく、非常に非効率的で、明らかに間違っています。

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>

于 2012-08-17T05:52:51.760 に答える
5

Perl でファイルの最終更新日を取得するために使用ls -lrtしている場合は、間違っています。

正しい解決策は、stat関数またはFile::Statそれをラップするモジュールを使用することです。どちらも、3 つの utimes すべてを含む、ファイルに関する一連のデータを提供します。

于 2012-08-17T05:52:34.797 に答える
2

stat伝統的です。標準の組み込みを使用するか

my $mtime = (stat $filename)[9];

または、File::statより記憶に残るアクセスを提供する便利なラッパーを使用します

use File::stat;

my $mtime = stat($filename)->mtime;
于 2012-08-20T10:36:03.657 に答える