|Just another Perl shrine|
How do I get a file's timestamp in perl?by faq_monk (Initiate)
|on Oct 13, 1999 at 03:42 UTC||Need Help??|
Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
If you want to retrieve the time at which the file was last read, written,
or had its meta-data (owner, etc) changed, you use the -M,
-A, or -C filetest operations as documented in the perlfunc manpage. These retrieve the age of the file (measured against the start-time of your program) in days as a floating point number. To retrieve the ``raw'' time in seconds since the epoch, you would call the stat function, then use
Here's an example:
$write_secs = (stat($file)); printf "file %s updated at %s\n", $file, scalar localtime($write_secs);
If you prefer something more legible, use the File::stat module (part of the standard distribution in version 5.004 and later):
use File::stat; use Time::localtime; $date_string = ctime(stat($file)->mtime); print "file $file updated at $date_string\n";
Error checking is left as an exercise for the reader.