Thread Maps in Arrays
(6 answers)
Opened by Blub at 2013-08-19 20:45 Guest Blub Das hier: @all[0] ist ein Array-Slice (also vergleichbar mit @a[0..0] - wenn du z.B. @a[0..2] schreibst, ist das ein Slice auf die ersten 3 Elemente). Wichtig ist, dass ein Array-Slice selbst ein Array ist. Also wird die rechte Seite im Listenkontext ausgewertet. Ein Hash (wie Maps in Perl genannt werden - wenn du von C++ kommt, würde ich eher std::unordered_map sagen) im Listenkontext liefert seine Key/Values nacheinander - Key+Value immer die zusammengehörenden hintereinander, aber die Reihenfolge der Key-Value-Paare ist nicht festgelegt und kann sich auch pro Programmstart unterscheiden. Minimalbeispiel: perl -E'%hash = qw(key1 value1 key2 value2);say for %hash;' Das ist so seit Version 5.18: http://search.cpan.org/dist/perl-5.18.0/pod/perlde... Wie die anderen geschrieben haben: das Array-Element ist ein Skalar, also $a[0], dem du dann eine Hash-Referenz zuweisen musst. Siehe vielleicht auch perllol oder perldsc. Last edited: 2013-08-20 08:24:08 +0200 (CEST) |