[quote=pq,14.07.2004, 18:14]nein, es ist hier meiner meinung nach kein anonymes array im spiel. es gibt array-referenzen,
also etwa
[], was eine referenz auf ein anonymes array ist.
() ist einfach eine liste, und ich bin derselben
meinung wie betterworld, dass das hier
unlogisch erscheint und syntactic sugar ist.
[quote=sri,14.07.2004, 17:0]Ja, hier haben wir eine Liste, weil im richtigen Kontext wird es intern als anonymes Array behandelt und gibt dann im scalar Kontext die Anzahl seiner Elemente zurück.[/quote]
so in etwa dachte ich mir das auch, aber es
ist unlogisch, weil es nicht dem normalen
verhalten von perl gleicht.
$scalar = qw(a b c);
hier ist z.b. niemals eine liste im spiel. perl
erkennt schon vor der zuweisung, dass es
sich um einen skalaren kontext handelt;
somit haben die beiden ersten elemente
void kontext und es wird nur das letzte element
zurückgegeben.[/quote]
Es geht mir auch nicht um logik sondern darum wie Perl es intern verarbeitet.
my $count = () = qw(a b c);
Ich kann es leider nicht mehr finden, aber ich meine das da in diesem Fall etwas von einem newAVREF im perly.y stand, kann mir nämlich nicht vorstellen das die Werte der anonymen liste als konstanten auf dem Stack landen, schliesslich ist folgendes ja auch möglich.
my $count = @list = qw(a b c);
Wenn ichs wiederfinde poste ichs...