#!/usr/bin/perl -w use strict; use Time::Local; my %months = ( 'Jan' => 0, 'Feb' => 1, 'Mar' => 2, 'Apr' => 3, 'May' => 4, 'Jun' => 5, 'Jul' => 6, 'Aug' => 7, 'Sep' => 8, 'Oct' => 9, 'Nov' => 10, 'Dec' => 11, ); my ($wday, $mon, $mday, $hr, $min, $sec, $year); my $date = 'Mon Apr 18 15:17:29 2005'; if (($wday, $mon, $mday, $hr, $min, $sec, $year) = $date =~ /(\w+)\s+(\w+)\s+(\d+)\s(\d+):(\d+):(\d+)\s+(\d+)/) { foreach my $key (keys %months) { $mon =~ s/$key/$months{$key}/i; } my $local_epoch = timelocal($sec, $min, $hr, $mday, $mon, $year); my $gmt_epoch = timegm($sec, $min, $hr, $mday, $mon, $year); }