open FSR, "ultimate_fsr.txt" or die "Couldn't open file: $!"; my %fsr_hash = ( ); my $search = undef; my $replace = undef; while () { ($search, $replace) = ($_=~m/"(.*?)" "(((\\")|[^"])*)"/); if ($search ne '' && $replace ne '') { $fsr_hash{$search} = $replace; } } open TEXTFILE, "test_file.txt" or die "Couldn't open file: $!"; open OUTFILE, ">output.txt" or die "Couldn't open file: $!"; while (my $line = ) { foreach my $key (keys %fsr_hash) { $line =~ s/$key/$fsr_hash{$key}/g; } print OUTFILE "$line"; }