Patrick Andrieu (noreg): use of implicit split to @_

Beitrag lesen

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!