[Cascavel-pm] Programa gerar arquivo

BOO mayakuuri em bol.com.br
Quinta Fevereiro 8 16:58:22 PST 2007


Apenas pra complementar a sugestão do André...

use Carp;

Dificilmente eu começo a escrever algum código em Perl (principalmente 
módulo),
sem antes escrever:

use strict;
use warnings;
use Carp;
use Data::Dumper;

O Data::Dumper geralmente eu elimino depois que o script/programa/módulo 
tá pronto, pois uso ele mais para fins de depuração durante o processo 
de desenvolvimento...

Patty: DECORA e USA isso antes de escrever qualquer linha de código !

Vai tornar tua vida deveras mais fácil.
Paralelo a isso, sempre checa no CPAN as coisas antes de começar a 
escrever algum código, pois certamente o que tu quer fazer já existe no 
CPAN (fora que foi bem testado e provavelmente não tem bugs)...

André Garcia Carneiro wrote:
> Patty,
>
> Segue a minha sugestão...
>
> use strict;
> use warnings;
> use Data::Dumper;
>
>
> my (@line, em line2);
> # @line conterá as linhas do arquivo de entrada file.csv
> # @line2 conterá as linhas do arquivo de saída file2.csv
>
> # Abrindo o arquivo de entrada file.csv
> # Talvez alguns membros da lista digam que seria usar o open de três parâmetros, mas eu pessoalmente acho que
> você não terá problemas com o de dois.
> open FILE,"file.csv" or die "$!"; #arquivo de origem
>
> # Criando o arquivo de saída file2.csv. Cuidado! Nesse caso, toda vez que o programa roda essa linha, um novo
> arquivo será gerado. Se você quiser manter os dados no mesmo arquivo, deve substituir > por >>
> open FILE2,">file2.csv" or die "$!"; #arquivo csv filtrado
>
> while(<FILE>)
> {
>      @line = split /\,/,$_;
>      if($line[2] eq 'UL') #supondo que o flag nunca muda de posição no arquivo file.csv
>      {
>            push @line2, {DATA => $line[0],NOME => $line[1], FLAG => $line[2], VARIAVEL => $line[3]}; # Só para
> o caso de você querer utilizar esses dados depois.
>             print FILE2 "$line[0],$line[1],$line[2],$line[3]\n";
>       }
> }
>
> close FILE2;
> close FILE;
> print Dumper @line; #Veja como fica a estrutura criada em @line2
> exit;
> #Fim do script
>
> Lembrando que existem maneiras muito mais elegantes de se fazer. Você pode, por exemplo, usar Class::CSV. 
>
> Cheers!
>
> --
> André Garcia Carneiro
> Developer(Perl/PHP)
> Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>   



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