Thread Multi Array aufdröseln (7 answers)
Opened by peterb at 2015-03-04 14:11

Raubtier
 2015-03-06 10:21
#180015 #180015
User since
2012-05-04
1076 Artikel
BenutzerIn
[default_avatar]
Guest peterb
push @{$HoAoA{$_->[0]}}, [@$_[1,2]] for @AoA;

Wieso aber wird dem Hash ein @ vorgesetzt, ist das dann was spezielles?


Also:
%HoAoA ist der Hash.
$HoAoA{$_->[0]} ist der Wert des Hashes an der Stelle $_->[0]. Dieses ist bei dir eine Referenz auf ein Array.
Du könntest also schreiben: my $arrayRef = $HoAoA{$_->[0]};.
Mit @{...} dereferenzierst du eine Array-Referenz. Hier also dereferenzierst du die vorher aus dem Hash geholte Referenz. Hier könntest du also schreiben: push @{$arrayRef}, ...;.

Somit ist nicht dem Hash ein @ vorgesetzt, sondern dem Hash-Wert.

Mehr Infos zum Beispiel hier:
Perldoc:perllol, Perldoc:perlref, Perldoc:perlreftut, Perldoc:perldsc

View full thread Multi Array aufdröseln