my %replacer = ( foo => "Shrek", bar => "Fiona", ); my $regex = join '|', keys %replacer; $regex = qr{($regex)}; my $text = 'foo runs for bar.'; $text =~ s/$regex/$replacer{$1}/ig; print $text, "\n";