#!/usr/local/bin/perl # traducao de palavras com consulta de um dicionario com validacao # o dicionario e lido do ficheiro: dict %dict=split(/[=\n]/,`cat dict`); while(<>) { s/(\w+)/traduz($1)/ge; print; } sub traduz{ my $a=shift; $dict{$a} || ucfirst($dict{lcfirst($a)}) || uc($dict{lc($a)}) || "+$a" ; } # Uma versao mais legível de traduz seria: # #sub traduz{ # supondo que $dict{gato}=cat # my $a=shift; # if (defined $dict{$a}) # {$dict{$a}} # gato -> cat # elsif (defined $dict{lcfirst($a)}) # {ucfirst($dict{lcfirst($a)})} # Gato -> Cat # elsif (defined $dict{lc($a)}) # {uc($dict{lc($a)})} # GATO -> CAT # else {"+$a"} # XXX -> +XXX #}