7.2. Arbeiten mit Hashes
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.