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 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
