The $_ in localtime $_ is not optional: without it, the function returns current local time; likewise gmtime().
in reply to Re^5: changing date format in and out
in thread changing date format in and out
The -l (that's a small ell) command line switch may be useful: it will automatically chomp the input record separator (IRS) on input and append the ORS on output. (IRS and ORS are both a newline by default.) As mentioned, not so important on input, but on output this gives you your converted time strings each on a separate line rather than as one (very long) line.
Example without -l command line switch:
>perl -wMstrict -lne "print scalar localtime $_" < utimes > ltimes
>perl -wMstrict -lne "print scalar gmtime $_" < utimes > gmtimes
Tue Jan 13 15:38:31 1970
Mon Sep 14 23:50:22 1970
Thu Jul 24 19:35:33 1980
Tue Jan 13 20:38:31 1970
Tue Sep 15 04:50:22 1970
Fri Jul 25 00:35:33 1980
>perl -wMstrict -ne "print scalar localtime $_" < utimes > ltimes
Tue Jan 13 15:38:31 1970Mon Sep 14 23:50:22 1970Thu Jul 24 19:35:33 19