($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) = POSIX::strptime(string, format);
The result for any value not extracted is not defined. Some
platforms may reliably return "undef",
but this is dependent on the strptime(3)
function in the underlying C library.
For example, only the following fields may be relied upon:
my ($min, $hour) = ( POSIX::strptime( "01:23", '%H:%M' ) )[1,2];
my ($mday, $mon, $year) = ( POSIX::strptime( "2010/07/16", '%Y/%m/%d' ) )[3,4,5];
Furthermore, not all platforms will set the
$wday and $yday
elements. If these values are required, use
"mktime" and
"gmtime":
use POSIX qw( mktime );
use POSIX::strptime qw( strptime );
my ($mday, $mon, $year) = ( POSIX::strptime( "2010/07/16", '%Y/%m/%d' ) )[3,4,5];
my $wday = ( gmtime mktime 0, 0, 0, $mday, $mon, $year )[6];