UnterWarum String Multiplikation ist Perl nicht auf undef warnen?
use strict;
use warnings;
my $foo = undef;
die Ausdrücke
$foo . ''
und
"$foo"
produzieren beide
Use of uninitialized value $foo in ... at ...
aber der folgende Ausdruck gibt th e leere Zeichenkette ohne Vorwarnung:
$foo x 1
Jeder weiß, warum? Ich meine, es ist cool, ein schönes stringification Idiom zu haben ($_ x 1
ist sehr viel kürzer als defined ? "$_" : ''
), aber es fühlt sich ein bisschen komisch.
Ich bin sicher, es war nicht beabsichtigt, zumindest nicht zu Beginn. – ikegami
'perldoc perlop' (Suche nach" Multiplikative Operatoren ") sagt nichts über das Verhalten von' x' mit einem 'undef' linken Operanden aus. Ich stimme zu, dass es wahrscheinlich unbeabsichtigt ist. –