Es que no tenés qu usar el time::localtime, sino el time::local que junto con la función interna de perl localtime te permite llevar cualquier fecha a cualquier formato, incluso compararlas...
Lo que hacés es alimentar el localtime con el valor que te de el time::local
Checkea..
Cita: Ej. ¿Qué fecha Unix fue 23:59:59 31/12/1999 tanto local como UTC?
use Time::Local
$time = timelocal(59,59,23,31,11,99); # mes-1 y año-1900
print "$time\n";
$time = timegm(59,59,23,31,11,99);
print "$time\n";
946699199
946684799
Si quieres verificarla, alimenta el resultado de timelocal en localtime.
Saludos