c:\@Work\Perl\monks>perl -wMstrict -le "use Data::Dumper; ;; use constant SENTENCE => 'this word word (word) is a word'; ;; my %dic = ( 'word word' => 'parola parola', 'word' => 'XXXX', '(word)' => '(parola)', ); print Dumper \%dic; ;; print '---------------'; ;; my ($rx_A) = map qr{ (? length $b } keys %dic ; print qq{rx_A: $rx_A}; ;; my $s = SENTENCE; print qq{'$s'}; $s =~ s/($rx_A)/$dic{$1}/g; print qq{'$s'}; ;; print '---------------'; ;; my ($rx_D) = map qr{ (? length $b } keys %dic ; print qq{rx_D: $rx_D}; ;; $s = SENTENCE; print qq{'$s'}; $s =~ s/($rx_D)/$dic{$1}/g; print qq{'$s'}; " $VAR1 = { '(word)' => '(parola)', 'word' => 'XXXX', 'word word' => 'parola parola' }; --------------- rx_A: (?^msx: (?