Thread Datei einlesen -> bearbeiten -> speichern
(9 answers)
Opened by tsy at 2008-08-29 12:49
Hallo!
Ich habe gerade ein Problem mit dem Schreiben in Datein. Folgendes Skript Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 use File::Find; use strict; use warnings; my $dir = "path"; find(\&process, $dir); sub process { my $file = $_; my @newFile; open (FILE, "<$file"); while (my $line = <FILE>){ if ( $line =~ s/(print)\s*("\w+")/\$lang->$1($2, \$actUser->{'lang'})/g ){ print "\nFound: $1, $2\n"; } push @newFile, $line; } close FILE; open (FILE, ">$file"); foreach my $line (@newFile){ #print FILE $line; print $line; } close FILE; } Soll alle Dateien durchsuchen und wenn ein print gefunden wurde dieses ersetzen. Klappt soweit auch ganz gut, nur das Schreiben misslingt. Wenn ich eine Datei öffne, nachdem das Skript durchgelaufen ist, dann sind alle Zeilen ersetzt, aber danach wird die gesamte Datei noch mal unvollständig darunter geschrieben; am Anfang jeder Zeile fehlen ein paar Buchstaben. Ausserdem bekomme ich die Warnung Code: (dl
)
readline() on closed filehandle FILE at line 25. Gruß, tsy |