use strict;
my $type = shift || die "usage: filetype [directory]\n";
my $dir = shift || "";
my $mail = qr{\W*(\.*(?:\w+|-)+\.*\@\.*(?:\w+|-)+(?:\.\w+)+)\W*};
my @files = glob("$dir\*.$type");
my $mails;
my $s_time = time;
for( @files ){
open FH, "$_" or die "can't open $_\n";
my @cont = <FH>;
close FH;
for( @cont ){
if( /$mail/go ){
$mails->{$1} or $mails->{$1} = 1
}
}
}
my $e_time = time;
if( keys %$mails ){
print "Total time: ", $e_time - $s_time, "\n";
print "Total email addresses: ", scalar keys %$mails, "\n\n";
print "$_\n" for keys %$mails;
}else{
print "No email address found\n"
}
|