Acabo de notar un comportamiento extraño de perl5 (5.10.0) cuando pasé 0 como el argumento de la línea de comandos a un script, que lo asigna a una variable. El problema que encontré es que si le doy a la variable un valor predeterminado en mi script que es mayor que 0, digamos 1, entonces puedo pasar cualquier valor excepto 0 para anular el valor predeterminado 1.problema pasando 0 como argumento de línea de comandos
A continuación se muestra el código de 'test.pl' solía:
#!/usr/bin/perl -w
my $x = shift || 1;
print "x is $x\n";
los siguientes son los comandos y ouputs cuando lo probé:
$ ./test.pl 2
x is 2
$ ./test.pl 0
x is 1
lo agradecería si alguien puede arrojar luz sobre esto. Gracias. wwl
No se olvide 'uso 5.10.0;' –
Tengo una sensación de que esto se introdujo en una versión bastante reciente de Perl, se puede decir cual? Entonces voy a +1. –
@gbacon: Gracias. Dado que algunos de nosotros todavía estamos en versiones anteriores, ¿podría mencionar esto en su respuesta, por favor, eugene y? Gracias. –