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

Roberto Maluhy Junior maluhy em gmail.com
Segunda Janeiro 30 07:33:03 PST 2006


Olá,

Obrigado pelo rápido retorno e pelas boas vindas.

Eu havia "resolvido" o problema do 'sort' com uma metodologia parecida
com a apresentada pelo "Lorn", só que com substituições.

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 =~ /[íìîï]/);
  $tmpa = "o" if ($a =~ /[óòôõö]/);
  $tmpa = "u" if ($a =~ /[úùûü]/);
  $tmpa = "c" if ($a =~ /[ç]/);

  $tmpa = "A" if ($a =~ /[ÁÀÂÃÄ]/);
  $tmpa = "E" if ($a =~ /[ÉÈÊË]/);
  $tmpa = "I" if ($a =~ /[ÍÌÎÏ]/);
  $tmpa = "O" if ($a =~ /[ÓÒÔÕÖ]/);
  $tmpa = "U" if ($a =~ /[ÚÙÛÜ]/);
  $tmpa = "C" if ($a =~ /[Ç]/);

  $tmpb = "a" if ($b =~ /[áàâãä]/);
  $tmpb = "e" if ($b =~ /[éèêë]/);
  $tmpb = "i" if ($b =~ /[íìîï]/);
  $tmpb = "o" if ($b =~ /[óòôõö]/);
  $tmpb = "u" if ($b =~ /[úùûü]/);
  $tmpb = "c" if ($b =~ /[ç]/);

  $tmpb = "A" if ($b =~ /[ÁÀÂÃÄ]/);
  $tmpb = "E" if ($b =~ /[ÉÈÊË]/);
  $tmpb = "I" if ($b =~ /[ÍÌÎÏ]/);
  $tmpb = "O" if ($b =~ /[ÓÒÔÕÖ]/);
  $tmpb = "U" if ($b =~ /[ÚÙÛÜ]/);
  $tmpb = "C" if ($b =~ /[Ç]/);

  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(...).

Abraços e obrigado,
Roberto

On 1/27/06, saopaulo-pm-request em pm.org <saopaulo-pm-request em pm.org> wrote:
> Enviar submissões para a lista de discussão SaoPaulo-pm para
>         saopaulo-pm em pm.org
>
> Para se cadastrar ou descadastrar via WWW, visite o endereço
>         http://mail.pm.org/mailman/listinfo/saopaulo-pm
> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
> corpo da mensagem para
>         saopaulo-pm-request em pm.org
>
> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
> endereço
>         saopaulo-pm-owner em pm.org
>
> Quando responder, por favor edite sua linha Assunto assim ela será
> mais específica que "Re: Contents of SaoPaulo-pm digest..."
>
>
> Tópicos de Hoje:
>
>    1. sort com acentuacao (Roberto Maluhy Junior)
>    2. Re: sort com acentuacao (Solli Moreira Honorio)
>    3. Apresentações do FISL 6 (Solli Moreira Honorio)
>    4. Re: sort com acentuacao (Lorn)
>    5. Evento Especial Rio Perl Mongers (Marco Lima)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 26 Jan 2006 22:16:12 -0200
> From: Roberto Maluhy Junior <maluhy em gmail.com>
> Subject: [SP-pm] sort com acentuacao
> To: saopaulo-pm em pm.org
> Message-ID:
>         <9c2c1c5f0601261616h1fa1c51bva845d36f0f41d30e em mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Ola,
>
> Como faco para a funcao 'sort' e alguns tokens utilizados em regular
> expressions (como \w) utilizarem acentos?
> Ja tentei:
> ---
> use locale;
> use POSIX (locale_h);
> setlocale(LC_CTYPE, "en_US.iso88591");
> ---
> mas nenhuma modificacao ocorre.
> O que estou fazendo de errado?
>
> A saida da linha de comando 'locale -a' fornece:
> C
> POSIX
> en_US
> en_US.iso88591
>
> E a variavel 'LC_CTYPE' contem o valor 'POSIX' como padrao. Como
> observacao, estou utilizando Debian Sarge e Perl 5.8.4.
>
> Grato pelo ajuda,
> Roberto
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 27 Jan 2006 08:20:52 -0300
> From: "Solli Moreira Honorio" <shonorio em terra.com.br>
> Subject: Re: [SP-pm] sort com acentuacao
> To: "saopaulo-pm" <saopaulo-pm em mail.pm.org>
> Message-ID: <ITR0US$DC2A98F93913C3842DA1970AF8E5AB90 em terra.com.br>
> Content-Type: text/plain; charset=iso-8859-1
>
> Pessoal,
>
> Deêm as boas vindas ao Roberto...
> ____
>
> Ola Roberto,
>
> Seja bem vindo ao grupo e sinta-se a vontade....
>
> Sobre a tua pergunta, você já deu uma olhada no link http://rf.net/~james/perli18n.html ? Aqui tem  muitas
> coisas sobre isto.
>
> Se isto não ajudar, você pode postar um exemplo do teu código e aí analisaremos juntos.
>
> Abraços,
>
> Solli M. Honório
>
> ---------- Cabeçalho original -----------
>
> De: saopaulo-pm-bounces em pm.org
> Para: saopaulo-pm em pm.org
> Cópia:
> Data: Thu, 26 Jan 2006 22:16:12 -0200
> Assunto: [SP-pm] sort com acentuacao
>
> > Ola,
> >
> > Como faco para a funcao 'sort' e alguns tokens utilizados em regular
> > expressions (como \w) utilizarem acentos?
> > Ja tentei:
> > ---
> > use locale;
> > use POSIX (locale_h);
> > setlocale(LC_CTYPE, "en_US.iso88591");
> > ---
> > mas nenhuma modificacao ocorre.
> > O que estou fazendo de errado?
> >
> > A saida da linha de comando 'locale -a' fornece:
> > C
> > POSIX
> > en_US
> > en_US.iso88591
> >
> > E a variavel 'LC_CTYPE' contem o valor 'POSIX' como padrao. Como
> > observacao, estou utilizando Debian Sarge e Perl 5.8.4.
> >
> > Grato pelo ajuda,
> > Roberto
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
>
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 25 Jan 2006 23:28:21 -0300
> From: "Solli Moreira Honorio" <shonorio em terra.com.br>
> Subject: [SP-pm] Apresentações do FISL 6
> To: undisclosed-recipients:;
> Message-ID: <ITOHJ9$7A38BF5B5D443027A4D26D46668451FC em terra.com.br>
> Content-Type: text/plain; charset=iso-8859-1
>
> Pessoal,
>
> No link http://ftp.pucpr.br/fisl/ é possível encontrar as apresentações do FISL 6, e onde é possível conhecer
> alguns dos nossos ilustres membros (o Marco Lima - o mago, o Daniel Ruoso e o Breno).
>
> O formato utilizado é o Ogg Vorbis, que é open source e tem algumas vantagens sobre o MP3, e você pode utilizar
> o VLC media player (www.videolan.org) para assistir as palestras.
>
> Abraços,
>
> Solli M. Honório
>
>
>
> ------------------------------
>
> Message: 4
> Date: Fri, 27 Jan 2006 16:13:44 -0200
> From: Lorn <lorn.br em gmail.com>
> Subject: Re: [SP-pm] sort com acentuacao
> To: saopaulo-pm em mail.pm.org
> Message-ID:
>         <bb8590d00601271013j28bdda18vaaebf5bcb0000a4f em mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Voce precisa fazer sorte baseado nos acentos? se não, voce pode tirar todos
> os acentos/caracteres estranhos da linha e fazer sort.
> "mas eu vou perder o conteudo da linha.."
> Não vai não, olha que legal ;)
> foreach my $linha (@entrada){
>                 my $linha_alterada = $linha;
>                 $linha_alterada =~
> tr/ÄÅÆÇÈÒÉÜÓÊæÝÔËðçÞÕÌúñèßÖÍûòéàÎüóêáØÏýôëâÙÐþõìãÚÑÿöíäÛÀîåÁøïÂùô/AAACEOEUOEaYOEecTOIunesOIuoeaIuoeaOIyoeaUEtoiaUNyoiaUAiaAoiAuA
> /;
>                 $linha_alterada = lc($linha_alterada);
>                 if ($linha_alterada =~ /pao de acuca/){
>                 push(@saida,$linha); #eu faco o que eu quiser com a
> $linha_alterada que eu sei que não vai ter acento, e quando preciso da linha
> imprimo a $linha que á a linha sem alteração, entendeu?
>                 }
> }
>
> Se fui muito confuso na minha explicação, pode falar que eu respondo sua
> duvida...
> On 1/26/06, Roberto Maluhy Junior <maluhy em gmail.com> wrote:
> >
> > Ola,
> >
> > Como faco para a funcao 'sort' e alguns tokens utilizados em regular
> > expressions (como \w) utilizarem acentos?
> > Ja tentei:
> > ---
> > use locale;
> > use POSIX (locale_h);
> > setlocale(LC_CTYPE, "en_US.iso88591");
> > ---
> > mas nenhuma modificacao ocorre.
> > O que estou fazendo de errado?
> >
> > A saida da linha de comando 'locale -a' fornece:
> > C
> > POSIX
> > en_US
> > en_US.iso88591
> >
> > E a variavel 'LC_CTYPE' contem o valor 'POSIX' como padrao. Como
> > observacao, estou utilizando Debian Sarge e Perl 5.8.4.
> >
> > Grato pelo ajuda,
> > Roberto
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
>
>
>
> --
> Lorn
> - Slackware Linux
> www.slackwarezine.com.br
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20060127/72423d4b/attachment.htm
>
> ------------------------------
>
> Message: 5
> Date: Fri, 27 Jan 2006 16:22:15 -0200
> From: "Marco Lima" <marco.lima em e-via.com.br>
> Subject: [SP-pm] Evento Especial Rio Perl Mongers
> To: saopaulo-pm em mail.pm.org
> Message-ID: <E1F2YEh-0007Ka-MU em server.rp40d.com>
> Content-Type: text/plain; charset=iso-8859-1
>
> Salve Monges !
>
> Evento Especial Rio Perl Mongers
>
> Palestra "O Mago ensina mágicas !!"
> Domingo dia 19 de março de 2006 às 15:00h
> Universidade Federal do Estado do Rio de Janeiro (UNIRIO)
> Av. Pasteur, 458 Auditório - Praia Vermelha - Urca
>
> [  ]'s
>
> --
>
> Marco Lima
> J. A. P. H.
>
> marco.lima em e-via.com.br
> mago em rio.pm.org
> mago em cpan.org
>
> Sociedade Perl do Brasil   |   http://www.perl.org.br
> Perl Monks                 |   http://www.perlmonks.org
> Brasil Perl Mongers        |   http://brasil.pm.org
>
> Register Linux User #355235
> Slackware Linux, for the subgenius
>
> "Ninguém é tão grande que não possa aprender, e nem tão pequeno que
> não possa ensinar"
>
>
> ------------------------------
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
> Fim da Digest SaoPaulo-pm, volume 16, assunto 21
> ************************************************
>


--
Roberto Maluhy Jr

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


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