in reply to Orthography Translation using Regex

The simplest way to do it would be to just put in a replace expression for each replacement you had to do, like this:
$string=s/r/‰/g;

You need to be carefull that you first replace the strings with the longer original texts: I see you have a conflict between s and sh - you need to convert sh first, otherwise you will wind up with šh, and that's not what you want.

Note that you could pack all the original strings and their translations into a hash, and then use a loop to translate all of them. I'm not sure that would buy you much, readability-wise - except that it could sort by the length of original string for you.

sub bylen { length($b)<=>length($a)} # sorts by decreasing length of s +tring foreach (sort keys bylen %trans) { s/$_/$trans{$_}/g; }
and the definitions would look like this:
$trans{Mh}='´'; $trans{gh}='³';
etc....