#!/usr/bin/perl $Lang{$L}{"Repl"} = { "m" => "Monat" }; # mimic Date::Manip $_ = "Mär"; print "before: $_\n"; foreach $from (keys %{ $Lang{$L}{"Repl"} }) { $to=$Lang{$L}{"Repl"}{$from}; utf8::upgrade($from); # Use Unicode semantics s/(^|[^[:alpha:]])$from($|[^[:alpha:]])/$1$to$2/i; } print "after: $_\n"; #### before: Mär after: Monatär #### s/(^|[^\p{IsAlpha}])$from($|[^\p{IsAlpha}])/$1$to$2/i; #### before: Mär after: Mär