[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