Input.txt
2014-04-24 14:22:52|TESTER001||/dev/pts/5|322655663|TYXRRES|0
2014-04-24 14:22:52|TESTER003||/dev/pts/5|323231258|TRRRDER|0
2014-04-24 14:22:52|TESTER002||/dev/pts/5|323135368|RCVDDER|0
####
Changes.txt
TESTER001,Frank_Sinatra
TESTER002,Jhon_Belushi
TESTER003,Homer_Simson
####
Output.txt (desired)
2014-04-24 14:22:52|Frank_Sinatra||/dev/pts/5|322655663|TYXRRES|0
2014-04-24 14:22:52|Homer_Simson||/dev/pts/5|323231258|TRRRDER|0
2014-04-24 14:22:52|Jhon_Belushi||/dev/pts/5|323135368|RCVDDER|0
####
real Output.txt
2014-04-24 14:22:52 Frank_Sinatra /dev/pts/5 322655663 TYXRRES 0
2014-04-24 14:22:52 Homer_Simson /dev/pts/5 323231258 TRRRDER 0
2014-04-24 14:22:52 Jhon_Belushi /dev/pts/5 323135368|RCVDDER|0
####
#!/usr/bin/perl
use warnings;
use strict;
open( my $out_fh, ">", "Output.txt" ) || die "Can't open the output file for writing: $!";
open( my $address_fh, "<", "Changes.txt" ) || die "Can't open the Changes file: $!";
my %lookup = map { chomp; split( /,/, $_, 2 ) } <$address_fh>;
open( my $file_fh, "<", "Input.txt" ) || die "Can't open the Input.txt file: $!";
while (<$file_fh>) {
####
my @line = split( /\|/, $_,);
for my $char ( @line ) {
( exists $lookup{$char} ) ? print $out_fh " $lookup{$char} " : print $out_fh " $char ";
}
print $out_fh "\n";
}