000
25.02.2009, 22:12 Uhr
Dirk1980
|
Hallo zusammen,
inzwischen habe ich das mit den komplexen Datentypen ganz gut verstanden. Allerdings macht mir die Schreibweise ohne Pfeiloperator noch Probleme.
Hier ein Beispiel:
Perl: |
#!/usr/bin/perl use strict; use warnings;
my %Anja;
my %Person = ( Name => 'Max', Alter => 44, Kinder => [ { Name =>'Peter', Alter => 15 }, { Name => 'Anja', Alter => 9 }, ], );
# Alter von Anja
# Variante 1 print "Alter von Anja: " . @{$Person{'Kinder'}}[1]->{'Alter'}; #funktioniert
# Variante 2 %Anja = %{@{$Person{'Kinder'}}[1]}; print "Alter von Anja: " . $Anja{'Alter'}; # funktioniert
# Variante 3 print %{@{$Person{'Kinder'}}[1]}{'Alter'}; # funktioniert NICHT - Warum???
|
Variante 1 und 2 funktionieren. Variante 3 nicht. Warum funktioniert Variante 3 nicht. Ich habe ein Hash bestimmt und möchte mit dem key 'Alter' den Wert erhalten. Wie kann ich das Alter von Anja bestimmen, wenn ich nicht den Pfeiloperator wie in Variante 1 und nicht den Umweg über eine Hashkopie wie in Variante 2 nehmen möchte.
Meine Lösung ist Variante 3, aber diese scheitert leider.
Vielen Dank für Eure Vorschläge Dirk |