[SP-pm] Digest SaoPaulo-pm, volume 16, assunto 23

Roberto Maluhy Junior maluhy em gmail.com
Quarta Fevereiro 1 06:38:52 PST 2006


Olá,

Wendel:
Era exatamente este tr que o "Lorn" havia sugerido.
Obrigado novamente.

Uma questão:
---
Supondo
$string =~ tr/pattern1/pattern2/;
---
Você sabe como funciona o tr? Ele compara cada caractere do seu
pattern1 com cada caractere da string a ser traduzida?
Caso sim, acho que alguns caracteres deste tr apresentado nunca são
utilizados como o \eth norueguês e assim podem ser removidos para que
as traduções ocorram mais rápido.
No entando, eu acho (suposição) que ele deve ir procurando os
caracteres do pattern1 na ordem esquerda->direita e quando acha,
substitui e pula para o próximo caractere da string. Caso este segundo
caso seja o que realmente acontece, então podemos modificar o tr
apresentado para conter em suas primeiras posições do pattern1 os
caracteres mais encontrados na língua portuguesa. O que acha?

Abraços,
Roberto

On 2/1/06, Wendel Scardua <wendelscardua em gmail.com> wrote:
> Eu costumo usar o seguinte tr (que não é de minha autoria ^^;;; ) pra
> tirar acentos (ele é sempre copypasteado de um script para outro
> ^^;;;;; )   tr/ÄÅÆÇÈÒÉÜÓÊæÝÔËðçÞÕÌúñèßÖÍûòéàÎüóêáØÏýôëâÙÐþõìãÚÑÿöíäÛÀîåÁøïÂùÃ/AAACEOEUOEaYOEecTOIunesOIuoeaIuoeaOIyoeaUEtoiaUNyoiaUAiaAoiAuA/;
>
> On 1/31/06, Roberto Maluhy Junior <maluhy em gmail.com> wrote:
> > Olá Alceu,
> > Obrigado pela dica.
> >
> > Estou utilizando a função assim:
> > ---
> > @ordenada = sort alfabeticamente @nao_ordenada;
> > ---
> > e já modifiquei ela, no lugar de um monte de substituições, estou
> > usando tr/// como sugerido pelo "Lorn".
> >
> > Vou tentar depois tamber utilizar as regras num hash, mas acho que não
> > vai ficar tão simples quanto o tr///.
> >
> > Abraços e obrigado,
> > Roberto
> >
> > > Date: Mon, 30 Jan 2006 17:08:54 -0300 (ART)
> > > From: "Alceu R. de Freitas Jr." <glasswalk3r em yahoo.com.br>
> > > Subject: Re: [SP-pm] expressões regulares e Locale
> > > To: saopaulo-pm em pm.org
> > > Message-ID: <20060130200854.8629.qmail em web30804.mail.mud.yahoo.com>
> > > Content-Type: text/plain; charset=iso-8859-1
> > >
> > > Oi Roberto,
> > >
> > > --- saopaulo-pm-request em pm.org escreveu:
> > >
> > > > From: Roberto Maluhy Junior <maluhy em gmail.com>
> > > > Subject: Re: [SP-pm] Digest SaoPaulo-pm, volume 16,
> > > > assunto 21
> > > > Ficou mais ou menos assim:
> > > > ---
> > > > use locale;
> > > > use POSIX qw(locale_h);
> > > > setlocale(LC_CTYPE, "en_US.iso88591");
> > > >
> > > > sub alfabeticamente {
> > > >   my $tmpa = $a;
> > > >   my $tmpb = $b;
> > > >
> > > >   $tmpa = "a" if ($a =~ /[áàâãä]/);
> > > >   $tmpa = "e" if ($a =~ /[éèêë]/);
> > > >   $tmpa = "i" if ($a =~ /[íìîï]/);
> > >
> > > # um monte de código depois
> > >
> > > >   unless ("\l$tmpa" cmp "\l$tmpb") {
> > > >     $tmpa cmp $tmpb;
> > > >   }
> > > > }
> > > > ---
> > > >
> > > > Bom, não é nada elegante mas funcionou.
> > > > Quanto às expressões regulares, o \w reconhece
> > > > caracteres acentuados
> > > > após o setlocale(...).
> > >
> > > Você pode usar um hash para amazenar essas suas
> > > regras. Se sua função for chamada mais de uma vez,
> > > você só tem que iterar sobre o hash.
> > >
> > > []'s
> > >
> > >
> > > Alceu Rodrigues de Freitas Junior
> > > --------------------------------------
> > > glasswalk3r em yahoo.com.br
> > > http://www.imortais.cjb.net
> > > -----------------------------------------------------------------------
> > > A well-used door needs no oil on its hinges.
> > > A swift-flowing stream does not grow stagnant.
> > > Neither sound nor thoughts can travel through a vacuum.
> > > Software rots if not used.
> > > These are great mysteries -- The Tao Of Programming, 5.1
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
>
>
> --
> []s
> Wendel
> --
> "Or think of Perl as a bigger hammer.  It lets you treat everything
> like a nail,
> and get away with it most of the time.  But sometimes not."
> -- Larry Wall
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


--
Roberto Maluhy Jr

Casa Editorial Maluhy & Co.
http://www.casamaluhy.com


Mais detalhes sobre a lista de discussão SaoPaulo-pm