Hallo pehajo,
Klaus und Christian haben ja schon einiges optimiert und aufgeklärt.
Bleibt mir nur noch, einen "Einzeiler" zu schreiben, der auch das macht was Du willst ;-)
my $nutzer = "MeinName";
open (IN, "alt.txt") or die $!;
open (OUT, ">neut.txt") or die $!;
# map() evaluert den Code im Block für alle Elemente der Liste, und gibt den letzten "Ausdruck" zurück,
print OUT map { s/^((?:.*?){2}$nutzer.*?)(\d*?)$/$1.($2 + 1)/e; $_; } <IN>;
# die RegEx matched, wenn $nutzer an 3. Stelle zwischen und steht.
# Dann wird es durch das Ergebnis der ersten Klammer ersetzt,
# und das Ergebnis der zweiten Klammer um eins erhöht.
close OUT;
close IN;
Ich hoffe es ist nicht zu kryptisch, aber es funktioniert imho einwandfrei ;-)
Gruß AlexBausW
P.S.: Einzeiler sind ein kleines Hobby von mir ;-)
Please visit my SELFvisitingcard @ http://www.atomic-eggs.com/selfspezial/daten/150.html