use Time::Local; %MONTHS_LOOKUP = ( Jan => 0, Feb => 1, Mar => 2, Apr => 3, #... ); my $date = 'Apr 29 13:54:10'; $date =~ /^(.{3}) (.{2}) (.{2}):(.{2}):(.{2})$/ or die("Bad date\n"); my $time = timelocal($5, $4, $3, $2, $MONTHS_LOOKUP{$1}, 2005); print(scalar(localtime($time)), "\n"); #### use Time::Local qw( timelocal_nocheck ); %MONTHS_LOOKUP = ( Jan => 0, Feb => 1, Mar => 2, Apr => 3, #... ); my $date = 'Apr 29 13:54:10'; $date =~ /^(.{3}) (.{2}) (.{2}):(.{2}):(.{2})$/ or die("Bad date\n"); my $time = timelocal_nocheck($5, $4, $3, $2, $MONTHS_LOOKUP{$1}, 2005); print(scalar(localtime($time)), "\n");