#!/usr/bin/perl use strict; use warnings; my $name_file='names.txt'; my $data_file='data.xml'; my $outp_file='data.out.xml'; # Einlesen der Namenspaare my %replace; open(my $nfh, '<', $name_file) or die "error open $name_file $!\n"; while(my $line=<$nfh>) { chomp($line); $replace{$1}=$2 if($line=~/^\s*(.+?)\s*=>\s*(.+?)\s*$/); } close($nfh); # erstellen der Suchliste my $search_str=join('|', map{qr(\Q$_\E)}keys(%replace)); $search_str=qr!($search_str)!; # daten Datei öffnen open(my $dfh, '<', $data_file) or die "error open $data_file $!\n"; # Ausgabedatei öffnen open(my $ofh, '>', $outp_file) or die "error open $outp_file $!\n"; while(<$dfh>) { # Zeile durchsuchen und und Ersetzen $_=~s/$search_str/$replace{$1}/g; # Zeile ausgeben print $ofh $_; } close($ofh); close($dfh);