Ajuda com PErl

1. Ajuda com PErl

bruno
brunnoboni

(usa Debian)

Enviado em 04/01/2008 - 18:47h

Então gente estou com alguns problemas para criar um script para retirar somente email de um arquivo texto em perl. Estou aprendendo a linguagem agora por isso estou com mtas dificuldades
meu codigo eh esse:

#!/usr/bin/perl
open(DADOSMAIL, "teste.txt") || die "Arquivo com E-Mails não encontrado\n";

#open(ARQ2,">testando_oficial.txt");

while(<DADOSMAIL>) {
$temp=0;

if ($_ =~ /(.+)@(.+)/){
print "bla: ".$_."\n\n";
$temp = index($_,"@");
$tmp = rindex($_, " ");
$_=substr($_,$temp,$tmp);

print "temp: ".$_."\n";



exit(0);
}


}
close(DADOSMAIL);

mas ele está retirando apenas a partir do dominio e não consigo retirar o nome do usuário do texxto. Alguém pode ajudar??


Bruno Araújo Boni



  


2. Re: Ajuda com PErl

Andre Oliveira
nbbr

(usa Ubuntu)

Enviado em 07/01/2008 - 10:55h

Posta aki um modelo desse arquivo, para eu entender melhor o que vc quer fazer.


3. Re: Ajuda com PErl

bruno
brunnoboni

(usa Debian)

Enviado em 07/01/2008 - 15:07h

É um arquivo txt comum com conteudos aleatórios e email contidos no meio desses conteudos como por exemplo.... o que estou utlizando para testar o meu programa é esse... com o nome teste.txt


"A grande quantidade de disseminação de informação na Web atual trouxe grandes benefícios já que o avanço da tecnologia trouxe muitas facilidades. Quer saber mais mande um email para:joao.pedro@gmail.com email do administrador. Assim, temos vários exemplos em petrinantekimura@ufam.edu.br ou adicione para receber o conetúdo dinamico acesse aqui nobrenta9910@yahoo.com.br ou tdbruno_1234@hotmail.com. Para realizar compras de objetos interessantes acesse felipe.inadiX@gmail.com e felipe.inadado@hotmail.com são emails do vendedor
e assim termina o texticulo para teste."

....e o que ele deve retornar são os emails contidos no texto acima por exemplo : felipe.inadiX@gmail.com e outros contidos no texto


4. Re: Ajuda com PErl

Andre Oliveira
nbbr

(usa Ubuntu)

Enviado em 08/01/2008 - 13:53h

open(FILE,"<te.txt")|| die "Arquivo não encontrado\n";

#joga cada linha para uma posição no array
@linhas=<FILE>;

#corre cada posição do array.
foreach $linha(@linhas){

#separa cada palavra por espaço.
@palavras = split(/ /,$linha);
foreach $palavra(@palavras){
#localiza um "@" na palavra.
if($palavra =~ /@/){
print "$palavra\n";
}
}
}


O RESULTADO OBTIDO COM O SEU ARQUIVO FOI ESSE:
para:joao.pedro@gmail.com
petrinantekimura@ufam.edu.br
nobrenta9910@yahoo.com.br
tdbruno_1234@hotmail.com.
felipe.inadiX@gmail.com
felipe.inadado@hotmail.com

SÓ TEM UM PROBLEMA COMO ELE SEPARA POR PALAVRAS NAO TRATEI O "para:" MAIS SE O ARQUIVO QUE VC QUISER FAZER ISSO TIVER MUITO DESSES ME AVISA.


PS: so vai precisar identar rs...


5. Re: Ajuda com PErl

Andre Oliveira
nbbr

(usa Ubuntu)

Enviado em 08/01/2008 - 13:55h

Outra coisa, estou printando na tela, vc pode printar para um arquivo ou redirecionar a saida do comando para um arquivo como eu fiz aki nos testes:

$ perl perl.pl > email.txt


6. Re: Ajuda com PErl

bruno
brunnoboni

(usa Debian)

Enviado em 08/01/2008 - 14:32h

Vlws cara...testei e tratei o case do "para" mto obrigado...
=)


Bruno Araújo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts