use strict;

my $textQueCalCodificar = "aneu-vos-en; torneu-li-la; torneu-la-hi; torneu-me-la; porta-m'hi; porta'ns-hi;";
my $mostraPassos=1;

sub aplicaUnaRegex {
my $quina=shift;
return 0 if $quina<1;
return 0 if $quina>12;
my $m='$textQueCalCodificar =~ s/';
#----------- apostrof+guio
$m.="['弼([ln]s)-((?:h[io]|els?|l[ai]|us)\\W)/".'\'$1'.'_$2' if $quina==1;
#----------- guio+guio
$m.="-((?:[lnv]o|u)s)-((?:h[io]|e[lmn]s?|l[ai]|us)\\W)/".'_$1'.'_$2' if $quina==2;#sobra ems
$m.="-([mst]e)-((?:l[ai]|les|us)\\W)/".'_$1'.'_$2' if $quina==3;#sobra [mt]e-us
$m.="-(li)-((?:h[io]|la|les)\\W)/".'_$1'.'_$2' if $quina==4;
$m.="-(l(?:a|es))-(hi\\W)/".'_$1'.'_$2' if $quina==5;
$m.="-(les)-(en\\W)/".'_$1'.'_$2' if $quina==6;
#----------- guio+apostrof
$m.="-([mst]e)['弼([lmnt]s?\\W)/".'$1'.'\'$2' if $quina==7;#sobren e[mt]s
$m.="-([mnst])['弼(h[io]\\W)/".'_$1'.'\'$2' if $quina==8;
$m.="-(li)['弼((?:ls?|n)\\W)/".'_$1'.'\'$2' if $quina==9;
$m.="-(la)['弼(n\\W)/".'_$1'.'\'$2' if $quina==10;
$m.="-(l)['弼((?:en|hi)\\W)/".'_$1'.'\'$2' if $quina==11;
#----------- guio
$m.="-((?:[mstn]e|l[ai]|[lnv]os|[lh]o|les|hi|us)\\W)/".'_$1' if $quina==12;#sobren e[mt]s
#-----------
$m.='/g;';
#print "-> $m\n";
eval($m);
return 1;
}

sub principal {
for (my $j=1;$j<13;$j++) {
#	print "$j\t$text\n";
	aplicaUnaRegex($j);
	print "$j\t$textQueCalCodificar\n" if $mostraPassos;
	}
}

principal;

