Thread Auf Hashslice eines anonymen Arrays zugreifen (12 answers)
Opened by suresh at 2011-03-03 17:34

clms
 2011-03-04 12:53
#146238 #146238
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2011-03-03T20:28:09 suresh
Wichtig war mir bei meiner Frage, dass es um ein anonymous array geht.
Genauergesagt um ein anonymous array gefüllt mit hashes.

Was ich erreichen möchte ist folgendes:
- auf bestimme Key/Values (item1, item2) aller hashes in dem array mit einer Anweisung zugreifen und dies dann in einem neuem hash abspeichern

Wenn ich es richtig verstanden habe, hat Dein Problem mit "anonym" nichts zu tun. Bei einem benannten Array hättest Du das gleiche Problem.

Du kannst zwar in Perl5 ein Array- oder Hashslice selektieren,
aber wenn Du die Elemente des Slices dereferenzieren willst um auf die
dort enthaltene Datenstruktur zuzugreifen, musst Du das einzeln machen,
also z.B. mit map oder for den Slice durchgehen.

In Deinem Fall könnte das etwa so aussehen:
Code (perl): (dl )
my %hash = map {$_->{item1} => $_->{item2}} @{$_};

Da wird der Hash jetzt für jedes Element im Array @{$_} mit einem
Paar gefüllt, das aus dem Value von item1 als Key und dem Value von item2 als Value besteht.

Aufgedröselt wäre das
Code (perl): (dl )
1
2
3
my %hash = ($_->[0]{item1} => $_->[0]{item2}, 
    $_->[1]{item1} => $_->[1]{item2},
    ...);

Aber evtl. willst Du ja auch ganz andere Daten...

View full thread Auf Hashslice eines anonymen Arrays zugreifen