[SP-pm] Problema com encoding

Wendel Scardua wendelscardua em gmail.com
Segunda Julho 23 03:07:54 PDT 2007


On 7/23/07, Igor Sutton Lopes <igor.sutton em gmail.com> wrote:
>
> Não é bem assim, no caso em questão Wendel. Quando você utiliza '=>', o
> perl transforma tudo que está na esquerda dele em string. Dito isso, os
> seguintes comandos são idênticos:
>
> %my_hash = (a => 1);
> %my_hash = ('a', 1);
>
> Executando o código acima com -MO=Deparse (antes que alguém fale, sim,
> estou usando Windows neste computador :-P):
>
> C:\WINDOWS\system32\cmd.exe /c perl -MO=Deparse \temp\t.pl
> (%hash) = ('a', 1);
> (%hash) = ('a', 1);
> \temp\t.pl syntax OK
>
> Agora a coisa muda de figura quando você tem palavras compostas como
> valor da esquerda: neste caso é sempre obrigatório ter aspas na chave,
> como em "(%hash) = ('minha chave' => 1)".
>
> Espero que tenha ficado mais claro!
>
>
Se fosse assim isso aqui não aconteceria:

perl -e '%my_hash = ( ç  => 1)'
Unrecognized character \xC3 at -e line 1.

Sendo que "ç" não é uma palavra composta. Se não me engano ele só vira
string se bate com o \w+ usual, que foi o que eu quis dizer com "ser um
identificador válido". Isto é, perl "estrito" não gosta que se use
barewords, mas é bonzinho se elas estiverem à esquerda do => .

Claro que isso é só um palpite meu baseado em observações, não em
documentação ^_^;;;

[]s
Wendel
--
"Não ajustar o auto-ajuste" - http://wendel.scardua.net/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070723/b92cd95a/attachment.html 


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