funciones - comandos perl
¿Por qué la multiplicación de cadenas de Perl no advierte en undef? (1)
Una vez vi un espectáculo con una escena en una clase de la escuela de leyes. El instructor presentó dos casos similares a sus alumnos y preguntó por qué resultaron en diferentes dictámenes. Es porque los juicios fueron hechos por jueces, y los jueces son personas, eventualmente explicó.
Eso debería advertir. Los desarrolladores que trabajan en Perl son personas. Ejecute perlbug
para enviar un informe de error si lo desea.
Debajo
use strict;
use warnings;
my $foo = undef;
las expresiones
$foo . ''''
y
"$foo"
ambos producen
Use of uninitialized value $foo in ... at ...
pero la siguiente expresión da la cadena vacía sin advertencia:
$foo x 1
Alguien sabe por qué? Quiero decir, es genial tener un buen lenguaje de stringificación ( $_ x 1
es mucho más corto que el defined ? "$_" : ''''
), Pero se siente un poco raro.