Thread Datei einlesen -> bearbeiten -> speichern (9 answers)
Opened by tsy at 2008-08-29 12:49

tsy
 2008-08-29 12:49
#114065 #114065
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
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.
also in der Zeile nach open FILE ..., die ich nicht verstehe. Kann mir jemand weiter helfen?

Gruß, tsy

View full thread Datei einlesen -> bearbeiten -> speichern