Código
#!/usr/bin/perl # Scrip en PERL que lista todos los mails encontrados en un ficheo plano de texto # Esta limitado a listar solo los mails con formato user@host.xxx # #Declaracion de funcion inicializadora, compurbo que seespecificaron bien loas argumento o muestro la ayuda llamando a 'show_help()' sub init(){ if(($#ARGV+1)!=1){&show_help} else{ if($ARGV[0] eq '--help'){&show_help} else{ $fichero=$ARGV[0]; #LLamo a la funcion que lee y porcesa la informacion &extraer_mails; } } } #Declaracion de funcion que informa uso sub show_help(){ exit; } #Declaracion de funcion que lee y procesa el archivo de entrada sub extraer_mails(){ #Abro elarchivo while(<AR>){ foreach $palabra(@palabras){ if($palabra=~/\w+@\w+\.\w*[^\.]$/){ } } } } &init;
Este script es simple, busca todas las direcciones de emial en un archivo pasado como parametro.
Mi duda es que con laexpresion regular solo eh conseguido que detecte los emails con formato user@host.xxx y no eh conseguido que tambien me devuelva los mails con formato user@host.xxx.yy
Como deberia quedar la expresion regular?
Saludos.
PD: Soy novato en PERL&expresiones regulares, y se me ocurrio hacer este script para practicar lo que estoyaprendiendo