<html><body>
<p>Nelson,<br>
<br>
O que seria esses "use strict" e "use warnings"??<br>
Vejo como uma vantagem na linguagem perl não ter que declarar variaveis.... porque voce diz ser uma boa pratica???<br>
<br>
Eu fiz aqui a busca em arquivo armazenado cada linha do arquivo em um array e depois comparando posicao por posicao para ver se teve ocorrencia da palavra que esta sendo buscada, e entao imprime a linha da ocorrencia da palavra. <br>
<br>
Fiz usando sua sugestao e gostaria de saber a opiniao da galera se ficou legal.<br>
<br>
vlw<br>
<br>
====================================================================================================================================<br>
<br>
#!/usr/local/bin/perl<br>
<br>
#Programa de busca de casamento de padrao em perl com uso de expressoes regulares<br>
<br>
if (@ARGV){ #testa se foi passado um argumento na execução do programa<br>
<br>
foreach $argument(@ARGV){ #carrega um argumento por vez para a variavel $argument<br>
push(@arguments,$argument); #adiciona o argumento ao array @arguments<br>
} <br>
                $palavra = $arguments[0];#a palavra é recuperada o array<br>
                $linha_palavra = 0;#linha da ocorrencia da palavra<br>
                $achei = 0; #se ocorrencia da palavra<br>
                open( ARQUIVO, "texto.txt" ) || die "Erro ao abrir arquivo texto.txt\n"; #abre o arquivo que sera lido<br>
                while ( $linha = <ARQUIVO> ) { #laço que carrega as linhas do arquivo<br>
                        ++$linha_palavra;#variavel que guarda a linha que esta sendo lida<br>
                        my @array = $linha; #carrega a linha lida no array<br>
                        my indice; #indice do array<br>
                        if ($array[indice] = $palavra) { #testa se a palavra nesta na linha<br>
                                print "Linha:".$aux."\n";#imprime a linha caso tenha encontrado a palavra<br>
                         $achei = 1; #seta achei indicando que pelo menos uma ocorrencia da palavra foi encontrada <br>
                        }<br>
                }<br>
                close ( ARQUIVO ); #fecha o arquivo<br>
                <br>
                 if ($achei == 0){ #testa se achei foi setado<br>
                         print "Não foi encontrado nenhuma ocorrência da palavra: ".$palavra."\n\n";<br>
         } <br>
<br>
}<br>
}<br>
else {#se não foi passado um argumento o programa pede ao usuario que repita a operacao<br>
        print "\nDigite a palavra a ser buscada passando como referencia na execução do programa\n\n";<br>
print "Exemplo: perl [programa] [tipo de busca] [palavra]\n\n";<br>
}<br>
<br>
t+<br>
<br>
<br>
.============================================.<br>
Diego Mendes Teixeira - diegom@lcc.ufmg.br <br>
Setor de Desenvolvimento - UFMG - LCC/CENAPAD <br>
Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910 <br>
'============================================'<br>
<img src="cid:10__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" width="16" height="16" alt="Inativo ocultar detalhes de"Nelson Ferraz" <nferraz@gmail.com>">"Nelson Ferraz" <nferraz@gmail.com><br>
<br>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:20__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br); background-repeat: no-repeat; " width="40%">
<ul>
<ul>
<ul>
<ul><b><font size="2">"Nelson Ferraz" <nferraz@gmail.com></font></b><font size="2"> </font><br>
<font size="2">Enviado Por: cascavel-pm-bounces+diegom=lcc.ufmg.br@pm.org</font>
<p><font size="2">20/10/2006 19:06</font>
<table border="1">
<tr valign="top"><td width="168" bgcolor="#FFFFFF"><div align="center"><font size="2">Favor responder a<br>
Cascavel Perl Mongers <cascavel-pm@pm.org></font></div></td></tr>
</table>
</ul>
</ul>
</ul>
</ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">Para</font></div></td><td width="100%"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
<font size="2">"Cascavel Perl Mongers" <cascavel-pm@pm.org></font></td></tr>
<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">cc</font></div></td><td width="100%"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
</td></tr>
<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">Assunto</font></div></td><td width="100%"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
<font size="2">Re: [Cascavel-pm] busca em arquivo</font></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""></td><td width="336"><img src="cid:30__=0CBBF883DFFA37E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<tt>Diego,<br>
<br>
Algumas sugestões:<br>
<br>
1) Coloque as seguintes linhas no início do seu script:<br>
<br>
use strict;<br>
use warnings;<br>
<br>
Você precisará então declarar suas variáveis com "my", antes de<br>
usá-las (o que é uma boa prática).<br>
<br>
2) Evite utilizar nomes de variáveis como "$aux" e "$aux2". Prefira<br>
nomes mais claros, como "$linha_numero" e "$achei".<br>
<br>
3) Leia o perlintro (em português!):<br>
<br>
</tt><tt><a href="http://www.perl.org.br/bin/view/Perldoc/Perlintro">http://www.perl.org.br/bin/view/Perldoc/Perlintro</a></tt><tt><br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
Cascavel-pm@pm.org<br>
</tt><tt><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a></tt><tt><br>
</tt><br>
</body></html>