foreach $pair (@pairs) { ($key,$value) = split (/=/, $pair); chomp ($value); foreach $name (@names) { $name =~s /\s$key/$value/ig; @newrecords = (@newrecords,"$name"); } } #### foreach $pair (@pairs) { ($key,$value) = split (/=/, $pair); chomp $value; # compile pattern to match $key with qr// my $match = qr/\b\Q$key\E\b/; # serach and replace names and push onto @newrecords foreach (@names) { s/$match/$value/gi; push @newrecords, $_; } }