<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>Olá pessoal;&nbsp; * Sou iniciante em Perl<br><br>&nbsp;&nbsp;&nbsp; Já construi uma aplicação que atendia nossas nessecidades, entretanto os arquivos para análise ficaram maiores e a aplicação passou a não mais satisfazer, vou explicar. O motivo é porque a aplicação para fazer as comparações e contagens usava como base arquivos de Kb e Mb no máximo, hoje trabalhamos com arquivos muito maiores. <br>&nbsp;&nbsp;&nbsp; O que preciso é fazer um balance line, pois ele vai ler o arquivo uma única vez, diferentemente da aplicação que desenvolvi que lia o arquivo muitas vezes. <br>&nbsp;&nbsp;&nbsp; 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.<br>&nbsp;&nbsp;&nbsp; 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.<br>&nbsp;&nbsp;&nbsp; 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?<br><br>Abraço.<br><br>sub Alel_A{<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; $contCol1=0;<br>&nbsp;&nbsp; $contCol2=0;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; open(FILE1,$ARGV[1]);&nbsp; #Arquivo que será analisados<br>&nbsp;&nbsp; open(FILE2,$ARGV[0]);&nbsp; # Arquivo para comparação<br>&nbsp;&nbsp; @file2=&lt;FILE2&gt;;&nbsp; #usei um vetor para usar o shift<br><br>&nbsp;&nbsp;&nbsp; $compara=shift(@file2);<br>&nbsp;&nbsp;&nbsp; chop $snp;<br>&nbsp;&nbsp;&nbsp;
 <br>&nbsp;&nbsp; while (&lt;FILE1&gt;){ <br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; if($_ =~ m/$compara/){&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $contCol1++ if $_ =~ m/A\s*A/; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ContCol2++ if $_ =~ m/A\s*B/;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }elsif($_ !=~ m/$compara/){<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; $snp=shift(@file2);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; chop $compara;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp; print&nbsp; "TENHO UMA FUNÇÃO QUE CALCULA A FREQUENCIA DESSAS INCIDÊNCIAS
 AQUI";<br>&nbsp;&nbsp;&nbsp; <br>}<br><br>&nbsp;&nbsp;&nbsp; O algoritmo seria mais ou menos isso que tenho em mente, mas não consegui êxito.<br><br><p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">abrir arquivo_a</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">abrir arquivo_b</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);"> &nbsp;</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">ler registro_a</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">ler registro_b</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);"> &nbsp;</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">enquanto (não fim_arquivo_a) e (não fim_arquivo_b)</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; se (chave_a = chave_b)</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; processa registros</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ler registro_b</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; senão&nbsp;&nbsp; se (chave_a &lt; chave_b)</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ler registro_a</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; senão </span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ler registro_b</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fim_se</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fim_se</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">fim_enquanto</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">fechar arquivo_a</span></p> 

<p class="MsoNormal"><span style="font-size: 11pt; font-family: &quot;sans-serif&quot;; color: rgb(31, 73, 125);">fechar arquivo_b</span></p><br></div>
</div><br>



      &nbsp;</body></html>