[Cascavel-pm] busca em arquivo
Diego Mendes Teixeira
diegom em lcc.ufmg.br
Segunda Outubro 23 12:20:01 PDT 2006
Nelson,
O que seria esses "use strict" e "use warnings"??
Vejo como uma vantagem na linguagem perl não ter que declarar variaveis....
porque voce diz ser uma boa pratica???
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.
Fiz usando sua sugestao e gostaria de saber a opiniao da galera se ficou
legal.
vlw
====================================================================================================================================
#!/usr/local/bin/perl
#Programa de busca de casamento de padrao em perl com uso de expressoes
regulares
if (@ARGV){ #testa se foi passado um argumento na execução do programa
foreach $argument(@ARGV){ #carrega um argumento por vez para a variavel
$argument
push(@arguments,$argument); #adiciona o argumento ao array @arguments
}
$palavra = $arguments[0];#a palavra é recuperada o array
$linha_palavra = 0;#linha da ocorrencia da palavra
$achei = 0; #se ocorrencia da palavra
open( ARQUIVO, "texto.txt" ) || die "Erro ao abrir arquivo
texto.txt\n"; #abre o arquivo que sera lido
while ( $linha = <ARQUIVO> ) { #laço que carrega as linhas do
arquivo
++$linha_palavra;#variavel que guarda a linha que esta
sendo lida
my @array = $linha; #carrega a linha lida no array
my indice; #indice do array
if ($array[indice] = $palavra) { #testa se a palavra
nesta na linha
print "Linha:".$aux."\n";#imprime a linha caso
tenha encontrado a palavra
$achei = 1; #seta achei indicando que pelo menos
uma ocorrencia da palavra foi encontrada
}
}
close ( ARQUIVO ); #fecha o arquivo
if ($achei == 0){ #testa se achei foi setado
print "Não foi encontrado nenhuma ocorrência da palavra:
".$palavra."\n\n";
}
}
}
else {#se não foi passado um argumento o programa pede ao usuario que
repita a operacao
print "\nDigite a palavra a ser buscada passando como referencia na
execução do programa\n\n";
print "Exemplo: perl [programa] [tipo de busca] [palavra]\n\n";
}
t+
.============================================.
Diego Mendes Teixeira - diegom em lcc.ufmg.br
Setor de Desenvolvimento - UFMG - LCC/CENAPAD
Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910
'============================================'
"Nelson Ferraz"
<nferraz em gmail.co
m> Para
Enviado Por: "Cascavel Perl Mongers"
cascavel-pm-bounc <cascavel-pm em pm.org>
es+diegom=lcc.ufm cc
g.br em pm.org
Assunto
Re: [Cascavel-pm] busca em arquivo
20/10/2006 19:06
Favor responder a
Cascavel Perl
Mongers
<cascavel-pm em pm.o
rg>
Diego,
Algumas sugestões:
1) Coloque as seguintes linhas no início do seu script:
use strict;
use warnings;
Você precisará então declarar suas variáveis com "my", antes de
usá-las (o que é uma boa prática).
2) Evite utilizar nomes de variáveis como "$aux" e "$aux2". Prefira
nomes mais claros, como "$linha_numero" e "$achei".
3) Leia o perlintro (em português!):
http://www.perl.org.br/bin/view/Perldoc/Perlintro
_______________________________________________
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/20061023/d18b512a/attachment.html
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : graycol.gif
Tipo : image/gif
Tam : 105 bytes
Descr.: não disponível
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061023/d18b512a/attachment.gif
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : pic30333.gif
Tipo : image/gif
Tam : 1255 bytes
Descr.: não disponível
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061023/d18b512a/attachment-0001.gif
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : ecblank.gif
Tipo : image/gif
Tam : 45 bytes
Descr.: não disponível
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061023/d18b512a/attachment-0002.gif
Mais detalhes sobre a lista de discussão Cascavel-pm