Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

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:

CODE:
%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

CODE:
print $anz = keys(%member);

Ausgabe = 11

2. Festellung der Anzahl der Hashwerte zum Schluessel 4

CODE:
print $#anzahl = (@{$member{4}});

Ausgabe = 5

3. Sortierte Ausgabe der Hashschschlüssel mit ausgewählten Werten

CODE:
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

CODE:
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

CODE:
print @dd = join(' ', (@{$member{2}}));

Ausgabe: 2003.12.28 W Meyer Lisa Deutschland

Anzeige
Banner - Der perfekte Kundenmagnet (728x90 Pixel)


Ähnliche Beiträge



Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *