0

ファイルの変更時間を取得するために使用している次のコードがあります。しかし、それは機能していません。stat コマンドまたは -M 演算子のどちらを使用しても、使用するメソッドに応じて、「初期化されていない値の使用…」または「未定義の値でメソッド "mtime" を呼び出せません」などのエラー メッセージが表示されます。助言がありますか?MAC OS v10.8.5 を使用しています。-M オプションが昨日数回機能したことを誓いますが、それ以来、機能しなくなりました。私は困惑しています。

<code>
#!/usr/bin/perl
use POSIX qw(strftime);
use Time::Local;
use Time::localtime;
use File::stat;
use warnings;

$CosMovFolder = '/Logs/Movies';
#sorting files based on modification date
opendir (DIR, $CosMovFolder);
@moviedir=readdir(DIR);
#$file1modtime = -M $moviedir[1]; #it works here but doesn't work if used after the 
sort line below. Why?

closedir(DIR);  
#sorting files by modification dates
@moviedir = sort { -M "$CosMovFolder/$a" <=> -M "$CosMovFolder/$b" } (@moviedir); 
#$file1modtime = -M $moviedir[1]; #tried this, not working.  same uninitialized value error message

$latestfile = $moviedir[1];
print "file is: $latestfile\n";
open (FH,$latestfile);

#$diff_mins = (stat($latestfile))[9];  #didn't work, same uninitialized value error message
my $diff_mins = (stat(FH)->mtime); # Can't call method "mtime" on an undefined value error message
print $diff_mins,"\n";
close FH
</code>
4

1 に答える 1