Patching up the flux capacitor is all that's needed here, Emmett...
--- pop3.pl Thu Apr 18 19:36:16 2002
+++ pop3-2.pl Sun Mar 9 17:17:26 2003
@@ -428,8 +428,8 @@
$DD = substr ($raw, 6, 2);
$YYYY = substr ($raw, 0, 4);
$HH = substr ($raw, 8, 2);
- $MM = substr ($raw, 10, 2);
- $MM = substr ($raw, 20, 2);
+ $MN = substr ($raw, 10, 2);
+ $SS = substr ($raw, 12, 2);
my $secs = &Date_SecsSince1970GMT($MM,$DD,$YYYY,$HH,$MN,$SS);
my $stamp = strftime('%a, %d %b %Y %l:%M:%S', localtime($secs));
Several months ago, I spent about 10 minutes poring over the source to this little program in order to try and get to the bottom of why the dates were screwed up. The year and month seemed to be wrong... so I checked that they were extracted from the correct portion of $raw (which is a string of the form yyyymmddHHMMSS), and after confirming that they were, I probably gave up and went and had a cup of tea or something. Revisiting this today, the glaringly obvious error was... well, obvious.
Sometimes you see things, sometimes you don't.