shouldn't it be timelocal() from Time::Local instead of mktime()? Or you could use POSIX qw(mktime) instead, but POSIX is a lot to bring in just for this.
Comment on Re^2: Convert Old Unix Date to Perl and compare
The OP was using mktime, indicating his problem was extracting the pieces of data from the filename, not with the construction of the time. Who am I to second guess him?