Hi,
hm, ich hab die Erklärungen vergessen, sorry ;) (danke, Antje, für den Hinweis *g*)
$benutzer = "irgendwas";
open(DATEI, "/.....adressen.txt") die $!;
<DAT> gibt entweder eine Liste der Zeilen zurück oder eine Zeile - je nachdem, ob es in einen Array oder
Skalar eingelesen wird. Also können wir sofort mit grep() die gesuchten Zeien raussuchen
@zeilen = <DAT>;
@lst = grep(/$benutzer/,@zeilen);
close(DAT);
@neu = ();
foreach (@lst)
{
Dann die gefilterte List parsen und den Counter um eines erhöhen und der neuen Liste anfügen
s/^((.+){4})([0-9]+)(.*)$/"$1".($3+1)."$4"/e;
push(@neu,$_);
}
Die beiden Listen zusammenfügen
push(@neu,grep(!/$benutzer/,@zeilen));
und schreiben ;)
open(DATEINEU, ">/......adressenneu.txt") die $!;
print DATEINEU @neu;
close(DATEINEU);
Dadurch sparst du dir überflüssige Schleifendurchläufe, usw.
Solltest du nur eine Zeile darin haben, die matchen kann, dann kannst du das Script noch vereinfachen
und die foreach-Sache weglassen und den Ausdruck einfach auf das erste Element der gefilterten
Liste anwenden.
mfg
CK1
<img src="http://wwwtech.de/images/banner.jpg" alt="">
http://wwwtech.de/
http://wwwtech.de