perlにて更新日付を取得したのですが・・・

[上に] [前に] [次に]
ふむ〜? 1999/12/11(土) 21:07:25
Perlにてファイルの更新日付を取得したいのですが・・・

#-----省略-----

#取り出し対象フォルダ
$dir = 'test';

opendir(DIR, $dir);
foreach $file (grep { !/^\. } readdir(DIR)){
     push(@files, (stat("$dir/$file"))[10] . " $dir/$file");
}

closedir(DIR);

#-----以下略-----
と、して取り出した場合なのですが・・・
すべて結果が「1970年1月1日(木)1時1分」とでてしまうのですが?

ちなみに作成日は「1999年12月11日」です。

どこがいけないのでしょうか?
教えてください、お願いします。

あと、statの[9]とか[10]はどういう意味なのでしょうか?

aqua-J 1999/12/11(土) 23:14:41
>(stat("$dir/$file"))[10]
更新時刻ならば、(stat("$dir/$file"))[9]

>あと、statの[9]とか[10]はどういう意味なのでしょうか?
http://www.tohoho-web.com/wwwperl2.htm#stat
書かれてる情報では、不足でしょうか。

ふむ〜? 1999/12/12(日) 03:09:53
[[解決]]
aqua-Jレスありがとうございます。

つまり・・・

$dir = "test";
opendir(DIR, $dir);
foreach $file (grep { !/^\./ }readdir(DIR)){
push(@files, (stat("$dir/$file"))[9] . " $dir/$file");
$time_data = localtime((stat("$dir/$file"))[9]);
@_ = localtime((stat("$dir/$file"))[9]);
}
closedir(DIR);

print "Content-type: text・・・<略>

print "<P>$time_data\n"; ← A
print "<P>@_ \n";     ← B

のようにして
Aなら「Sat Dec 11 01:03:20 1999」となり
Bなら「20 3 1 11 11 99 6 344 0」とうまくいきました。

>http://www.tohoho-web.com/wwwperl2.htm#stat
>書かれてる情報では、不足でしょうか。

ごもっとも(笑)

どうやらミスは配列からの取り出しの際ミスってました(笑)
だから1970/01/01 1:01などとなっていました。

[上に] [前に] [次に]