Chris: Anzahl der gelöschten Elemente - scalar(splice) tuts nicht

Beitrag lesen

Danke für deine ausführlichen Erklärungen! Sehr interessant!

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.

perl -MO=Deparse kannte ich nocht nicht, das ist ja echt genial :)

Mit runden Klammern kann ich nun in manchen Fällen Listen-Kontext erzwingen, z.B. (funktion);. Warum geht das nun bei dem splice nicht? Dass ein Klammernpaar nicht reicht ist klar, aber mit zwei gehts auch nicht.

  
# geht nicht  
scalar( (splice(@arr, $i, $c)) );  

Das hab ich mir auch schon mit -MO=Deparse angeschaut und dann verschwinden tatsächlich beide Klammern um splice herum. Das erscheint mir nun nicht so logisch.

Ich probiere mal noch

  
my $anz = ( splice(@arr, $i, $c) );  

aus.

Grüße
Chris