localtime () es una de esas funciones de Perl que funciona de forma distinta si la ejecutamos en modo lista o en modo escalar:
Using perl Syntax Highlighting
my($momento) = "->1264 1381717807 :seconds idle, signon time" =~ /\d+ (\d+)/; # extraemos
# modo lista
my @fecha = localtime $momento;
say "@fecha"; # 7 30 4 14 9 113 1 286 1
# modo escalar
my $fecha = localtime $momento;
say $fecha; # Mon Oct 14 04:30:07 2013
# modo escalar, localizado para español de España
use POSIX qw(strftime locale_h);
setlocale(LC_ALL, "es_ES");
$fecha = strftime "%a %b %e %H:%M:%S %Y", localtime $momento;
say $fecha; # lun oct 14 04:30:07 2013
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Lo que me extraña es lo que te está pasando a ti: lo estás ejecutando en modo escalar (hay una variable escalar en la parte izquierda de la asignación), pero el resultado te lo toma como una referencia a un
array.
Seguramente ese localtime() será una reescritura del verdadero localtime(). Así lo hace, por ejemplo, el módulo
Time::Piece.