Verarbeitung eines Hashes mit Arrayinhalten in Perl
Dieser Artikel beschreibt wie man einen Hash mit zugewiesenen Arraywerten auf verschiedene Art und Weise darstellt, Werte abgreift, und nach Kriterien sortiert ausgibt.
Beispielcode für verschiedene Ausgaben
Dem Beispiel zugrunde liegt dieser Hash mit Arraywerten:
%member = ( 1 => ["2004.02.02" ,"M" ,"Walter", "Helmut", "Deutschland"], 2 => ["2003.12.28" ,"W" ,"Meyer" , "Lisa", "Deutschland"], 3 => ["2002.05.22" ,"M" ,"Müller", "Maximilian", "Schweiz"], 4 => ["2002.11.01" ,"M" ,"Lehmann", "Hubert", "Oesterreich"], 5 => ["2004.01.04" ,"W" ,"Schulze", "Stefanie", "Deutschland"], 6 => ["2002.06.09" ,"M" ,"Wolter", "Willy", "Oesterreich"], 7 => ["2004.01.17" ,"W" ,"Thomas" , "Eva-Maria", "Schweiz"], 8 => ["2001.09.04" ,"M" ,"Schneyder", "Jean", "Frankreich"], 9 => ["2002.11.17" ,"M" ,"Clerc", "Pascale", "Frankreich"], 10 => ["2003.08.10" ,"M" ,"Benguerel", "Sebastian", "Spanien"], 11 => ["2002.10.01" ,"W" ,"Carl", "Johanna", "Deutschland"], );
1. Festellung der Schlüsselanzahl des Hashes
print $anz = keys(%member);
Ausgabe = 11
2. Festellung der Anzahl der Hashwerte zum Schluessel 4
print $#anzahl = (@{$member{4}});
Ausgabe = 5
3. Sortierte Ausgabe der Hashschschlüssel mit ausgewählten Werten
foreach $key (sort { $a <=> $b } keys %member) { print "$key - $member{$key}[0] - $member{$key}[4]<br>"; }
Ausgabe:
1 – 2004.02.02 – Deutschland
2 – 2003.12.28 – Deutschland
3 – 2002.05.22 – Schweiz
4 – 2002.11.01 – Oesterreich
5 – 2004.01.04 – Deutschland
6 – 2002.06.09 – Oesterreich
7 – 2004.01.17 – Schweiz
8 – 2001.09.04 – Frankreich
9 – 2002.11.17 – Frankreich
10 – 2003.08.10 – Spanien
11 – 2002.10.01 – Deutschland
4. Sortierte Ausgabe der Hashwerte nach Kriterien
foreach $key (sort { $member{$a}[2] cmp $member{$b}[2] } keys %member) { print "$member{$key}[2], $member{$key}[3]<br>"; }
Ausgabe:
Benguerel, Sebastian
Carl, Johanna
Clerc, Pascale
Lehmann, Hubert
Meyer, Lisa
Müller, Maximilian
Schneyder, Jean
Schulze, Stefanie
Thomas, Eva-Maria
Walter, Helmut
Wolter, Willy
5. Per Join die Arraywerte eines Schlüssels in ein anderes Array ablegen
print @dd = join(' ', (@{$member{2}}));
Ausgabe: 2003.12.28 W Meyer Lisa Deutschland
Keine Kommentare vorhanden