Perlでファイルの作成日を得るには?

[上に] [前に] [次に]
がつ [E-Mail] 1999/10/27(水) 17:09:16
PerlのCGI中で使用しているファイル及び作業ディレクトリの
作成日(秒の単位くらいまで)を取得したいのですが、
本とかを読んでみても方法がいまいちわかりません。
なにかうまい方法があれば教えて下さい。
環境がWindowsNTなのでNTで可能な方法をよろしくお願いします。

バーチャルヒューマン [E-Mail] [HomePage] 1999/10/27(水) 19:36:55
こんな感じで、ファイルの更新日時が取得できますよ
$_ = localtime( (stat("file-name"))[9] );

詳しくは、stat() 関数のreferenceを見るといいですよ。

ふじ 1999/10/27(水) 21:34:16
>$_ = localtime( (stat("file-name"))[9] );
localtime 関数が返すのは配列では?

($sec, $min, $hour, $day, $mon, $year) = localtime( (stat("file-name"))[9]);
とか。あと、
(stat("file-name"))[9]
これだと最後の更新日時が得られます。作成日時が欲しいなら
(stat("file-name"))[10]

現在から何日前に作られたのかを調べたいなら、ファイルテスト演算子 -C も
使えます。

B-Cus 1999/10/27(水) 22:12:31
> localtime 関数が返すのは配列では?
scalar として評価すると、日時になります。
 % perl -e '$_=localtime((stat("filename"))[9]); print "$_\n"'
 Wed Oct 20 02:43:19 1999
# $_=scalar(localtime((stat("filename"))[9])) と同じ。

 % perl -e '@_=localtime((stat("filename"))[9]); print "@_\n"'
 19 43 2 20 9 99 3 292 0

ふじ 1999/10/27(水) 22:55:38
あ、なるほど。勉強になります。
#やっぱ実験しないで書いちゃ駄目ですね(^^;;

がつ 1999/10/27(水) 23:33:38
[[解決]]
ありがとうございました。
これでCGIを完成させることができそうです。

本当にありがとうございました。

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