#!/usr/local/bin/perl #Programa de busca de casamento de padrao em perl com uso de expressoes regulares print "\nEscolha a opcão de busca e a palavra a ser buscada(passagem por argumento)\n\n"; print "0 - Busca exata\n"; print "1 - Busca aproximada\n\n"; print "Exemplo: perl [programa] [tipo de busca] [palavra]\n\n"; foreach $argument(@ARGV){ #carrega um argumento por vez para a variavel $argument push(@arguments,$argument); #adiciona o argumento ao array @arguments } if ($arguments[0] == '0'){ #Testa o primeiro argumento, se '0' entao busca exata! $palavra = $arguments[1];#a palavra é recuperada o array $aux = 0;#linha da ocorrencia da palavra $aux2 = 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 = ) { #laço que carrega as linhas do arquivo ++$aux;#variavel que guarda a linha que esta sendo lida if ( $linha =~ /\b$palavra\b/ ) { #testa se a palavra esta na linha referenciada print "Linha:".$aux."\n";#imprime a linha caso tenha encontrado a palavra $aux2 = 1; #seta aux2 indicando que pelo menos uma ocorrencia da palavra foi encontrada } } close ( ARQUIVO ); #fecha o arquivo if ($aux2 == 0){ #testa se aux2 foi setado print "Não foi encontrado nenhuma ocorrência da palavra: ".$palavra."\n\n"; } } else { #Busca aproximada! $palavra = $arguments[1];#a palavra é recuperada o array $aux = 0;#linha da ocorrencia da palavra $aux2 = 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 = ) { #laço que carrega as linhas do arquivo ++$aux;#variavel que guarda a linha que esta sendo lida if (( $linha =~ /$palavra/ ) || ($linhaMaus =~/$palavra/) || ($linhaMin =~/$palavra/)){ #testa se a palavra esta na linha referenciada print "Linha:".$aux."\n";#imprime a linha caso tenha encontrado a palavra $aux2 = 1; #seta aux2 indicando que pelo menos uma ocorrencia da palavra foi encontrada } } close ( ARQUIVO ); #fecha o arquivo if ($aux2 == 0){ #testa se aux2 foi setado print "Não foi encontrado nenhuma ocorrência da palavra: ".$palavra."\n\n"; } }