Beim Versuch, die Anzahl der Elemente nach dem Splitten eines Strings zu ermitteln, was auch glückte, erhielt ich jedoch folgende Warnung:
use of implicit split to @_ is deprecated
Mein Gedankengang war:
split() liefert eine Liste zurück
eine Liste im skalaren Kontekt -> Anzahl der Listenelemente
und so codete ich:
print scalar split/:/,'foo:bar';
Ausgabe: 2, wie erwartet. Aber hätte ich nicht einen Blick in die error.log des Apache geworfen (es ist eine CGI-Anwendung), wäre mir die Warnung nicht aufgefallen.
Ein temporäres Array hilft, diese zu vermeiden:
~~~perl
my $tmp = my @tmp = split/:/,'foo:bar';
print $tmp;
»elegant« ist IMHO was anderes... Im Archiv scheint niemand mit dem Problem konfrontiert worden zu sein, und Google liefert genug Hinweise zu Perldoc mit der Erklärung: »Use of split in scalar context is deprecated,
however, because it clobbers your subroutine arguments.«
Nunja...
P.S.: das war \_keine\_ Frage!