$in_filename = 'A.DAT'; if ( open my $in_fh, '<', $in_filename ) { # Datei zum Lesen öffnen if ( open my $out_fh, '>', "$in_filename.out" ) { # Ausgabe-Datei zum Schreiben öffnen while (my $line = <$in_fh> ) { # eine Zeile einlesen $line =~ s/\x0A$//; # \n (LF, hex 0A) entfernen my @felder = split '\|',$line; # |-getrennte Felder aufspalten if ($felder[3] =~ /(\S+)\s/) { # mit Regex alles bis zum Leerzeichen bei Feld 4 einfangen $felder[12] = $1; # gefangenes Feld 13 zuweisen $felder[10] = 200088; # Feld 11 Wert setzen } $line = join '|',@felder; # Zeile wieder zusammenbauen print $out_fh $line, "\x0D"; # geänderte Zeichenkette speichern } } else { die "Kann Datei '$in_filename.out' nicht öffnen/schreiben!"; } } else { die "Kann Datei '$in_filename' nicht öffnen!"; }