Alex Grupe: öffnen einer Datei und eine Zeile löschen (Die 2-te)

Beitrag lesen

Hi!

Ich ich folgendes Problem: (Quellcode siehe unten)
1.) Ich möchte einen User aus einer Datei "test.txt" löschen.
2.) Login steht jeweils in einer neuen Zeile.

So nun, wie man unten erkennen kann wird die Datei geöffnet, usw...
(Quellcode nicht 100% von mir, sonst würde ich das nicht posten müssen)

Hm, sieht ein bisschen umständlich aus... (Und: was passiert, wenn die
gesuchte Zeile gar nicht vorkommt? Beim Aufruf von "print wdata @data"
wäre wdata ja gar nicht geöffnet!)

Sonst probier das mal:

sub remove
{
my($file,$str) = @_;
my @data = ();

open(DATA, $file) or &error("fehler");  
while(<DATA>)  
{  

push(@data,$_) unless $_ =~ /$str/;
}
close DATA;

open(WDATA, ">$file") or &error("fehler");  
print WDATA @data;  
close WDATA;  

}

&remove(DATEI, STRING) löscht dann aus DATEI alle Zeilen, in denen
STRING vorkommt. Aufruf z. B.: &remove("test.txt","Login");

Ciao,
  Alex