[Cascavel-pm] Res: Balance Line - RESOLVIDO
Leonardo Gerheim
general_andrade em yahoo.com.br
Segunda Maio 3 06:09:26 PDT 2010
Diz aí pessoal;
Eu consegui resolver o problema sim, as dicas de vocês aqui foram de suma importância. E Breno, e outros que me lembraram disso também, a inserção no cabeçalho dos módulos warnings, strict e principalmente do diagnostics (esse é basicamente um professor particular) kkk.
um abraço a todos que me ajudaram.
________________________________
De: breno <breno em rio.pm.org>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Sábado, 1 de Maio de 2010 15:06:33
Assunto: Re: [Cascavel-pm] Balance Line
2010/4/21 Leonardo Gerheim <general_andrade em yahoo.com.br>:
E ai, Leonardo, alguma atualização no problema?
Além do que o Diogo falou, umas dicas:
> Olá pessoal; * Sou iniciante em Perl
* vc disse ser iniciante em Perl. Nesse caso, recomendo colocar o
seguinte cabeçalho no topo de seus programas:
use strict;
use warnings;
use diagnostics;
isso vai exigir que você declare variáveis ao usá-las pela primeira
vez, além de pegar alguns erros (e alertas) de execução. O
"diagnostics" exibe junto com o warning uma descrição do problema,
possiveis causas e soluções. Depois que seu programa estiver
executando sem warnings, pode remover o "use diagnostics" - mas deixe
o resto do cabeçalho.
> Funciona assim, tenho dois arquivos ordenados, um com 3 colunas(arquivo
> de análise), ele possui várias linhas com a primeira coluna igual e o
> segundo arquivo(arquivo de comparação) que possui uma coluna apenas com uma
> incidência apenas da coluna do primeiro arquivo.
* em vez de dar uma descrição do que cada arquivo contém, que tal um
pequeno exemplo? Pelo que entendi, é assim:
(arquivo1 - análise)
AAAAAAAAAA BBBBBBBBBBB CCCCCCCCCC
AAAAAAAAAA DDDDDDDDDDD EEEEEEEEEE
AAAAAAAAAA FFFFFFFFFFFF GGGGGGGGG
XXXXXXXXXXXXX YYYYYYYYYYY WWWWWWW
XXXXXXXXXXXXX VVVVVVVVVVV ZZZZZZZZZZZZZ
(arquivo2 - comparacao)
AAAAAAAAAA
JJJJJJJJJJJJJJJ
As colunas tem tamanho fixo? O separador é um espaço? Sempre tem pelo
menos 1 espaço?
> Então eu leio cada linha de ambos os arquivos e comparo, caso sejam
> iguais eu conto os valores das colunas 2 e 3 do arquivo1, caso diferentes eu
> pego a próxima linha do arquivo de comparação.
O que você quer dizer com "conto os valores das colunas 2 e 3"? São
números? Você conta o número de ocorrências de cada entrada?
> O código da função responsável por essa parte está assim após essa
> alterção que expliquei que preciso fazer, mas não funciona. Alguém pode me
> dar uma luz?
* "mas não funciona" não ajuda a gente a te ajudar. Você tem q deixar claro:
- que dados vc está recebendo;
- o que exatamente quer fazer com eles;
- como está fazendo (código! isso vc mostrou)
- o que deveria aparecer depois do processamento
- o que apareceu em vez do que vc queria
Lembre-se que as pessoas da lista querem te ajudar, mas não estão
dentro do seu trabalho pra entender o problema ou olhar pro seu
terminal e ver o que há de errado :-)
Finalmente, vc mencionou um problema de desempenho. Fazer operações de
I/O, como ler arquivos, realmente é bastante custoso, mas tem certeza
que o gargalo do seu programa está nisso? Ou apenas nisso? Evite
otimizações cedo demais, mas uma vez que seu programa está pronto e o
desempenho está deixando a desejar, experimente rodar um code profiler
nele, como o Devel::NYTProf. Para isso, instale o Devel::NYTProf do
CPAN e chame seu programa passando para o perl a opção "-dNYTProf":
> perl -dNYTProf meuprog.pl
Mais informações aqui:
http://search.cpan.org/perldoc?Devel::NYTProf
Boa sorte!
[]s
-b
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20100503/d63454c9/attachment-0001.html>
Mais detalhes sobre a lista de discussão Cascavel-pm