Hallo zusammen.
Ich habe mal wieder ein Problem...
und zwar wuerde ich gerne mehrere Begriffe, die ich aus einer Liste einlesen moechte, in einem Text ersetzen.
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
#!/usr/bin/perl
use warnings;
open(DATEI,"<", "altedatei") || die "Datei nicht gefunden";
while(<DATEI>)
{
chomp;
push(@my_array,$_);
}
close(DATEI);
open (DATA, "datei") || die "konnte die Datei nicht oeffnen\n";
#Solange noch etwas in der Datei steht, fuehre sed-Aktion aus
while (<DATA>)
{
$_ =~ s/$my_array/$replace/g;
push(@datei, $_);
}
#Die Datei wird nach der Bearbeitung geschlossen.
close (DATA);
#Die Datei wird zum schreiben geoeffnet
open (WRITE, ">datei.neu") || die "konnte Datei nicht beschreiben\n";
#Die Datei wird mit dem Inhalt des Arrays ueberschrieben.
print WRITE @content;
#die fertige Datei wird geschlossen.
close (WRITE);
Leider meckert mir Perl diese Zeile:
$_ =~ s/$my_array/$replace/g;
als:
Use of uninitialized value in regexp compilation at replacer.pl line 61, <DATA> line 368.
Weiss jemand warum?
Danke schonmal.