Aprendiendo Perl, el reto: historia popular

Marcelo marcelo.magallon en gmail.com
Mar Jul 10 15:18:00 PDT 2012


Hola,

gracias por la contribución.

No me aguanto las ganas de comentar sobre este pedazo en particular:

2012/7/8 Javier Tiá <javier.tia at gmail.com>:

>     my $get_cmds =
>         qq/$ENV{'SHELL'} -i -c "history -r; history"/
>         . q/ | awk '{for (i=2; i<NF; i++) printf $i " "; print $NF}'/;
>
>     chomp(my @cmds = qx# $get_cmds #);

admito una reacción alérgica a la prescencia de awk ahí, pero en
realidad no comento por eso, sino más bien porque la salida de
"history" no es estable como para tratar de parsearla en esta forma.
Por ejemplo, en mi caso una línea de esa salida se ve así:

 2336  Tue, 10 Jul 2012 15:00:00 -0600 cd

Uno podría tratar de poner parches encima a esto para asegurarse que
la salida de "history" es exactamente lo que uno espera que sea, pero
para este punto creo que es bueno cuestionarse si todo eso es
realmente más sencillo que:

open my $fh, "<", $histfile;
while (<$fh>)
{
    chomp;
    ...
}

y pasar la complejidad a asignarle un valor a $histfile (porque
supongo que el problema que estás tratando de resolver es que
$HISTFILE no es portable).

Saludos,

Marcelo


Más información sobre la lista de distribución Costarica-pm