迪拉斯: Anzahl der gelöschten Elemente - scalar(splice) tuts nicht

Beitrag lesen

wie kann man Listen-Kontext "erzwingen"?
mit runden Klammern.
Wie meinst du das mit den runden Klammern

  
# ungewiss  
funktion;  
  
# Skalarkontext erzwungen  
scalar funktion;  
my $s = funktion;  
  
# Listenkontext erzwungen  
(funktion);  
my @a = funktion;  
my ($foo, $bar) = funktion;  
  
## die Methode liefert eine Liste, und wir möchten ein bestimmtes Element  
# leider Syntaxfehler  
$obj->methode[42];  
# dito  
($obj->methode)[42];  
# so wird ein Schuh draus  
[$obj->methode]->[42];  

und warum geht das jetzt mit splice nicht?

Weil sich scalar die Klammern zuerst schnappt und sie deswegen nicht mehr zum Listenkontext oder Gruppieren zum tragen kommen. Die Klammern um einen einzelnen Funktionsparameter sind optional, das kannst du auch gut sehen, wenn du mal das Beispiel von <#m916130> durch perl -MO=Deparse jagst.

--
水-金-地-火-木-土-天-海-冥