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, $_; } }