Christoph: Namensliste mit Perl durchsuchen

Beitrag lesen

Hallo,

Mir liegt eine Liste mit Namen vor. Pro Zeile steht ein Name.
Ich muß jetzt ein Perl-Script so umschreiben, daß dort nicht einfach nur ein Name ans Ende gehängt wird, sondern vorher überprüfen, ob der Name bereits schon vorhanden ist.
Ich weiß hier aber leider nicht, wie ich vorgehen soll. Das sind ca. 4000 Namen. Es ist nicht mehr sinnvoll, die alle in ein Array einzulesen und dieses dann zu durchsuchen, oder etwa doch?

man könnte die Namen gleich in einen Hash einlesen. Doppelte Namen fallen dabei raus:

my %NamenListe;
open( DATEI, "<liste.txt" ) || die "Datei nicht gefunden";
while ( my $zeile = <DATEI> ){
  $zeile=~s/\s+$//;
  $NamenListe{$zeile}=1;
}
close(DATEI);

open( DATEI, ">ausgabe.txt" ) || die "Datei nicht gefunden";
for(sort(keys(%NamenListe))){
  print DATEI "$_\n";
}
close(DATEI);

Und wie wäre es mir möglich, gezielt einen bestimmten Namen aus der Liste zu löschen?
Auch wieder alles in ein Array einlesen, einen Eintrag aus dem Array löschen und damit die Datei überschreiben?
Mit welcher Funktion lösche ich einen Array-Eintrag? Das Arrayelement müßte dann wohl am besten verschwinden und nicht einfach nur mit einem Leerstring überschrieben werden.

delete($NamenListe{'Pumpernickel'});

Gruß, Christoph