... my $changeList = join('|',(keys %changes)); ... $string =~ s/($changeList)/$changes{$1}/g;