Are you sure?  Please include the Perl version used to run your program. And 
remember that you need Perl 5.12.0 or later to get
proper Y2038 support in code Perl functions…

 

Cheers,

-Jan

 

From: [email protected] 
[mailto:[email protected]] On Behalf Of
Rothenmaier, Deane C.
Sent: Tuesday, January 03, 2012 11:29 AM
To: [email protected]
Subject: FYI... Time::Local::timelocal breaks in 2038

 

Perl gurus,

 

The following code demonstrates a catastrophic failure in the timelocal 
function of the Time::Local package on Jan. 19th, 2038:

 

use strict;

use warnings;

use Time::Local;

 

sub convert_date_to_epoch {

my $str_date = shift;

   $str_date =~ /^(\d{4})(\d{2})(\d{2})$/;

   return( timelocal( 0, 0, 0, $3, $2 - 1, $1 - 1900 ));

}

 

my $date = "20380118";

my $bignum = convert_date_to_epoch( $date );

print "epoch number for $date = $bignum\n";

 

$date = "20380119";

$bignum = convert_date_to_epoch( $date );

print "epoch number for $date = $bignum\n";

 

 

The result of the second subroutine call is:

Day too big - 24855 > 24854

Sec too small - 24855 < 74752

Cannot handle date (0, 0, 0, 19, 0, 2038) at bignum.pl line 11

 

Don’t think this will affect many of us coding now, but if somebody’s looking 
more than 26 years into the future, well, they’re in a
pickle.

 

Deane Rothenmaier

Programmer/Analyst – IT-StdCfg

Walgreens Corp.

2 Overlook Point #N51022D

MS 6515

Lincolnshire, IL 60069

224-542-5150

 

Blessed are they who have nothing to say and who cannot be persuaded to say it. 
– James Russell Lowell

 

_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to