The easiest if not fastest way would be Date::Parse:
in reply to How to calculate earliest date from log file
$ perl -MDate::Parse -E'say scalar gmtime str2time("08/Oct/2007:04:54:
Mon Oct 8 08:54:20 2007
str2time() gives you the seconds since the epoch that you can easily compare.
Because Date::Parse has to do its format guessing every time you call the parsing function, you'd be much faster using a hand-crafted regexp with a little hash like
or something along these lines, maybe correcting for the time zone if these should be allowed differ too in your log lines. However, if you're doing anything significant with your data afterwards, the speedup may not even be noticeable. A program I wrote in 2008 uses Date::Parse and parses millions and millions of lines a day---it was just never worth fixing and testing the fix for such a little speed gain.
%months = ( Jan => '01', Feb => '02', ... );