When you have a timestamp number (such as the ones from stat), it will typically look something like 1180630098. That won’t help you, unless you need to compare two timestamps by subtracting. You may need to convert it to something human-readable, such as a string like “Thu May 31 09:48:18 2007”. Perl can do that with the localtime function in a scalar context:
my $timestamp = 1180630098; my $date = localtime $timestamp;
In a list context,localtimereturns a list of numbers, several of which may not be what you’d expect:
The$monis a month number, ranging from0to11, which is handy as an index into an array of month names. The$yearis the number of years since 1900, oddly enough, so add1900to get the real year number. The$wdayranges from0(for Sunday) through6(for Saturday), and the$ydayis the day-of-the-year (ranging from 0 for January 1, through 364 or 365 for December 31).
Two related functions are also useful. Thegmtimefunction is the same aslocaltime, except that it returns the time in Universal Time (what we once called Greenwich Mean Time). If you need the current timestamp number from the system clock, use thetimefunction. Bothlocaltimeandgmtime default to using the currenttimevalue if you don’t supply a parameter:
my $now = gmtime; # Get the current universal timestamp as a string
For more information on manipulating date and time information, see the information about some useful modules in Appendix R.