Thread array in hash erweitern
(23 answers)
Opened by jan99 at 2010-09-03 12:59
Du hast in Deinem Post folgendes geschrieben:
Code (perl): (dl
)
1 2 3 4 5 6 7 # jetzt sollen die array-daten des hash-keys ausgegeben werden # nach dem script kann man auf diese daten mit @{ $VARIABLE{$KEY} } zugegriffen werden # das @ ist für mich das kennzeichen das die daten als array zurückkommen und deshalb # würde ich for my @data (($key_id_list{$key}) schreiben # dieses führt jedoch zu einer fehlermeldung # die Dumper-ausgabe zeigt bei $data die erwarteten daten an } Wie schreibst Du denn normalerweise eine for-Schleife? (Machst Du ja anfangs auch richtig): Und in dem Kommentar schreibst Du, dass Du folgendes versucht hast: Der Wert eines Hashes ist *immer* ein Skalar. Den Wert des Hashes holst Du Dir in Deinem Beispiel mit $key_id_list{$key}. In Deinem Beispiel ist der Skalar eine Arrayreferenz. Jetzt verbinden wir das Wissen: 1. Wir wissen, dass wir ein Array für die for-Schleife brauchen 2. Wir wissen, dass wir aus dem Hash eine Arrayreferenz bekommen 3. Wir wissen, wie wir aus einer Arrayreferenz ein Array bekommen Also machen wir im ersten Schritt Das $ARRAYREF ersetzen wir noch mit dem Holen der Daten aus dem Hash: Jetzt wollen wir nur noch die Laufvariable $data verwenden. Also Also Dein Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 for my $key (sort keys %key_id_list) { # hier wird der hash-key ausgegeben - das ergebnis ist auch das erwartete print "key: ".$key."\n"; # jetzt sollen die array-daten des hash-keys ausgegeben werden for my $data ( @{ $key_id_list{$key} } ) { print Dumper($data); } } OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |