Patrick Andrieu: länge eines mehrdimensionalen Array auselesen

Beitrag lesen

Hallo roger!

assign a reference to array of array references

my  $AoA_ref = [
[ "fred", "barney", "pebbles", "bambam", "dino", ],
[ "homer", "bart", "marge", "maggie", ],
[ "george", "jane", "elroy", "judy", ],
    ];

for my $i ( @$AoA_ref ) {
for my $j ( @$i ) {
  print $j,"\t";
}
print "\n";
}

Wie sieht es aus wenn die die Anzahl der Felder im 2. Array haben will ?
Anzahl der Felder im @$i ?

Der (oder das?) zweite Array hat den Index 1. Denn erreichst Du also mit $$AoA_ref[1]. Aber wir sind hier noch nicht fertig, denn:

  
print @$AoA_ref[1]; # Ausgabe -> ARRAY(0x18313b8)

Huch? Hier muss also auch dereferenziert werden!

  
my $arr = @$AoA_ref[1]};  
my @arr = @$arr;  
print scalar @arr; # Ausgabe -> 4

Kürzer:

  
my $arr = @{@$AoA_ref[1]};  
print $arr;        # Ausgabe -> 4

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?