Bajo¿Por qué la multiplicación de cadenas de Perl no advierte sobre undef?
use strict;
use warnings;
my $foo = undef;
las expresiones
$foo . ''
y
"$foo"
tanto producen
Use of uninitialized value $foo in ... at ...
pero la siguiente expresión da º e cadena vacía sin previo aviso:
$foo x 1
Cualquiera sabe por qué? Quiero decir, es genial tener un buen modismo de stringification ($_ x 1
es bastante más corto que defined ? "$_" : ''
), pero se siente un poco raro.
Estoy seguro de que no fue intencional, al menos no al principio. – ikegami
'perldoc perlop' (busque" Operadores Multiplicativos ") no dice nada sobre el comportamiento de' x' con un operando 'undef' a la izquierda. Estoy de acuerdo, es probable que sea involuntario. –