Als Fortsetzung zum vorherigen Beispiel der Arbeit mit den Array kommt jetzt auch
ein Hash
zum Einsatz. Es sollen nur die einmaligen Zeilen ausgegeben werden:
%vorhanden=();
@uniq_lines=();
foreach
$line (@feld) {
if
($vorhanden{$line}) {
print
"upps... das hatten wir schoneinmal ($line)\n";
}
else {
push(@uniq_lines,
$line);
$vorhanden{$line}++;
}
}
Das Array beinhaltet jetzt nur einmalige Elemente. Jetzt sollen aber die doppelten
Elemente
ausgegeben werden. Dazu könnte man ein zweites Array aufbauen. Alle notwendigen
Informationen stehen aber schon im Hash "vorhanden". Diese können wie folgt wieder extrahiert
werden:
foreach
$h (sort keys(%vorhanden)) {
print
"$h war ",$vorhanden{$h}+1," mal vorhanden...\n";
}
Diese Liste wird nach den Schlüsseln sortiert.