my @NoNull= grep { scalar( grep { $_ } @$_ ) } @AoA;
...
Hausaufgabe: Erkläre die Funktionsweise des Scripts!
;-)
Verstehen tu ich's, aber selber draufkommen gelingt mir nicht.
grep erstellt eine Liste aus den Elementen, die die Bedingung erfüllen.
Man muss immer von hinten nach vorne gehen um solche Konstrukte zu verstehen (vermutlich ist das mein Problem)
my @NoNull= grep { scalar( grep { $_ } @$_ ) } @AoA;
Jedes Element der Liste @AoA wird Dereferenziert ( @$_) -->
die Liste, die das innere grep zurückgibt enthält nur die Werte, die <> 0 oder undefined sind -->
hat eine dieser Listen nur "Nullwerte", ist diese Liste leer -->
die Umwandlung in einen Skalar ergibt in dem Fall 0 -->
dadurch gibt das äußere grep nur die Arrayreferenzen zurück, die mindestens einen Wert haben.
Wäre ich nie drauf gekommen, ist aber ganz logisch ;-)
Struppi.
Javascript ist toll (Perl auch!)