Em 12 de junho de 2011 13:02, Blabos de Blebe <[email protected]> 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 <[email protected]>: > > <off> > > Bolivia? > > Que parada é aquela la? > > Morei anos por la. > > Até. > > </off> > > > > 2011/6/10 Renato Santos <[email protected]> > >> > >> 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 <[email protected]> > >>> > >>> 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 <[email protected]> > >>>> > >>>> 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: [email protected] > >>>> 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: [email protected] > >>> 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: [email protected] > >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > >> =end disclaimer > >> > > > > > > > > -- > > Oscar Marques > > [email protected] > > 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: [email protected] > > 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: [email protected] > 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: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
