#!/usr/bin/perl -w use strict; my %changes=( foo => 'toto', bar => 'tata', 'fo*' => 'to*', ); my $changeList = join('|', map { "\Q$_\E"} keys %changes); my $string= "foo bar fo*"; $string =~ s/($changeList)/$changes{$1}/g; print $string;