Danke für deine schnelle Antwort,
leider muss die "replace"-Variable sich aus den Werten (Zeile für Zeile) aus dem array zusammensetzen.
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
28
29
30
31
32
33
34
#!/usr/bin/perl
#use strict;
use warnings;
my @my_array;
my $replace = "$my_array".'@'."xy.de";
open(DATEI,"<", "altedatei") || die "Datei nicht gefunden";
while(<DATEI>){
chomp;
push(@my_array,$_);
}
close(DATEI);
my $string = join("|",@my_array);
my $regex = qr{$string};
my $replace = "$array".'@'."xy.de";
open (DATA, "datei") || die "konnte die Datei nicht oeffnen\n";
#Solange noch etwas in der Datei steht, fuehre sed-Aktion aus
while (<DATA>){
$_ =~ s/$regex/$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 @datei;
#die fertige Datei wird geschlossen.
close (WRITE);
wenn ich es so mache stirbt das Prog mit folgendem Fehler:
Name "main::my_array" used only once: possible typo at replacer2.pl line 7.
Use of uninitialized value in string at replacer2.pl line 7.
Aber es muss sich die Werte in my_array einlesen und dann Wert fuer Wert in regex _und_ replace einsetzen... :(
\n\n
<!--EDIT|nikster77|1140312356-->