Nein, nicht wirklich. Jedenfalls nicht mit Perl v5.14.2.
perl -wE "$a=undef; say length($a); printf qq~Version: %vd\n~, $^V; "
Use of uninitialized value in say at -e line 1.
Version: 5.14.2
# alternativ
perl -wle "$a=undef; print length($a); printf qq~Version: %vd\n~, $^V; "
Use of uninitialized value in print at -e line 1.
Version: 5.14.2
Die Warnung kommt nicht vom length() (das gibt bei einem Argument
undef auch
undef zurück, ohne Warnung), sondern eben vom say(), dass nun undef ausgeben soll ;-)
Wie sich das bei älteren Perl-Versionen verhält, vermag ich gerade nicht nachvollziehen (mangels Versionen).
Es kann aber auch gut sein, dass sich dieses Verhalten in den letzten Versionen geändert hat.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!