[SP-pm] problemas com perl

Stanislaw Pusep creaktive at gmail.com
Mon Jun 13 07:14:38 PDT 2011


Lázaro, acho que o Tie::Handle::CSV resolve todos os seus problemas:
http://sao-paulo.pm.org/equinocio/2011/mar/17

ABS()



2011/6/13 Solli Honorio <shonorio em gmail.com>

>
>
> Em 12 de junho de 2011 13:02, Blabos de Blebe <blabos em gmail.com> escreveu:
>
> Lázaro, vamos por partes,
>>
>> Eu não consegui reproduzir o seu problema aqui, mas como vc mandou o
>> script eu vou fazer alguams crífticas construtivas que poderão te
>> salvar de muitas dores de cabeça no futuro, ou presente, sei lá
>>
>> 1) Nunca, nunca mesmo faça qualquer código sem começar com as linhas:
>>
>> use strict;
>> use warnings;
>>
>> Se possível pode trocá-las por:
>>
>> use Modern::Perl;
>>
>> Como diz o manual, "strict - Perl pragma to restrict unsafe
>> constructs", ou seja, vai restringir o uso de construc'ões inseguras.
>>
>> http://perldoc.perl.org/strict.html
>> http://perldoc.perl.org/warnings.html
>>
>> 2) Na forma que você utilizou, não vejo tanto problema, mas executar
>> qualquer comando externo, passando comandos e caracteres especiais pro
>> shell (>) quase sempre abre uma brecha monstruosa de segurança.
>> Prefira utilizar módulos que fazem isso pra vc, te poupando de se
>> preocupar com os detalhes chatos, tipo o IPC::Open3
>>
>> http://search.cpan.org/perldoc?IPC::Open3
>>
>> 3) Jamais utilize open com 2 argumentos. Isso também pode adicionar
>> uma falha de segurança de proporções épicas. O comando open por razões
>> históricas também pode ser utilizado para comunicação iterprocessos, o
>> que pode ser um efeito colateral indesejado na maioria dos casos.
>>
>> http://perldoc.perl.org/functions/open.html
>>
>>
> Dúvidas da melhor maneira de trabalhar com arquivo (não aborda unicode), dê
> uma olhada !
> http://sao-paulo.pm.org/artigo/2010/analisedastecnicasparaabrirelerarquivos
>
>
>> 4) Nunca permita que uma entrada de usuário vá diretamente para algum
>> comando, principalmente open, como nas linhas:
>>
>> while($nome=<IN>){
>>        open EST,"<$dirin\\$nome";
>>
>> Uma linha vianda de um arquivo, também conta como "entrada de usuário".
>>
>> 5) Use CPAN
>>
>> Por exemplo você poderia ter utilizado os módulos para tratamento de
>> CSV por exemplo, pra manipular os seus arquivo, como o Text::CSV.
>>
>> ...
>>
>> No mais, fique esperto com arquivos textos que vc leva de um sistema
>> pra outro, porque além dos encodings (que o stan pode te ajudar), tem
>> problemas com terminadores de linha, os famosos \n, \r\n, \n\r,
>> blablabla.
>>
>> No mais, sempre que precisar, faça como fez, mande o trecho de código
>> e exemplos. Códigos grandes ficam melhores num pastebin da vida.
>>
>> []'s
>>
>> 2011/6/10 Oscar Marques <oscarbm em gmail.com>:
>> > <off>
>> > Bolivia?
>> > Que parada é aquela la?
>> > Morei anos por la.
>> > Até.
>> > </off>
>> >
>> > 2011/6/10 Renato Santos <renato.cron em gmail.com>
>> >>
>> >> Só um dica,
>> >> este arquivo está [provavelmente] em UTF16:
>> >> $ file /home/renato/Downloads/alalay_1971.txt
>> >> /home/renato/Downloads/alalay_1971.txt: Little-endian UTF-16 Unicode
>> text,
>> >> with CRLF, CR line terminators
>> >> então você pode tentar fazer isto:
>> >>
>> >> open IN, '<:encoding(utf-16)' , "arquivos.dat";
>>                              # IN = arquivos.dat
>> >>
>> >>
>> >> 2011/6/10 Solli Honorio <shonorio em gmail.com>
>> >>>
>> >>> Lázaro,
>> >>> Eu acho que o teu problema é com unicode, dê uma
>> >>> olhada http://sao-paulo.pm.org/equinocio/2011/mar/4 e vê se isto
>> resolve o
>> >>> teu problema.
>> >>> Solli M. Honório
>> >>>
>> >>> 2011/6/10 José Lázaro Siqueira Júnior <juniortaub em hotmail.com>
>> >>>>
>> >>>> Utilizo o windows vista e estou com problemas na leitura de um
>> arquivo
>> >>>> ascii, pois, entre os caracteres de cada variavel, o perl esta sendo
>> >>>> atribuindo automaticamente um espaço. Por exemplo:
>> >>>>
>> >>>> DATOS DE : TEMPERATURA MEDIA AMBIENTE DIARIA (ºC) (AÑO: 1971)
>> >>>>
>> >>>> D A T O S  D E : T E M P E R A T U R A   M E D I A   A M B I E N T
>> E   D
>> >>>> I A R I A  ( º C )  ( A Ñ O :  1 9 7 1 )
>> >>>>
>> >>>> O estranho é que já rodei o mesmo script sem problemas p/ outras
>> bases
>> >>>> de dados, que seguem o mesmo padrão dos arquivos de entrada(anexo),
>> porém,
>> >>>> com estes dados não obtive sucesso.
>> >>>>
>> >>>> Segue anexo os dados de entrada e o script perl.
>> >>>>
>> >>>> Obrigado,
>> >>>>
>> >>>> Lázaro
>> >>>>
>> >>>> =begin disclaimer
>> >>>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> >>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> >>>> =end disclaimer
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> "o animal satisfeito dorme". - Guimarães Rosa
>> >>>
>> >>> =begin disclaimer
>> >>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> >>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> >>> =end disclaimer
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> Renato Santos
>> >> http://www.renatocron.com/blog/
>> >>
>> >> =begin disclaimer
>> >>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> >> =end disclaimer
>> >>
>> >
>> >
>> >
>> > --
>> > Oscar Marques
>> > oscarbm em gmail.com
>> > http://www.dunkelheit.com.br
>> > @f117usbr
>> > +55 21 9293-9343
>> >
>> > ------------------------------------
>> > Participe do I Hack'n Rio
>> > ------------------------------------
>> >
>> >
>> > =begin disclaimer
>> >   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> > =end disclaimer
>> >
>> >
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> "o animal satisfeito dorme". - Guimarães Rosa
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110613/8b85d242/attachment.html>


More information about the SaoPaulo-pm mailing list