use strict; use warnings; use 5.010; use POSIX qw(strftime); use List::MoreUtils qw(uniq); use Data::Dumper qw(Dumper); my $range = 50; my $minimum = 100; my $random_number = int(rand($range)) + $minimum; my $date = strftime "Y%m%d", localtime; my $filenadme =$exname.$random_number.$date.'.txt'; @files = ; #scan folders for email foreach $file (@files) { open (MYFILE, $file); open(my $fh, '>', $filenadme); while () { chomp; my @emails = split(' '); my @filtered = uniq(@emails); foreach my $emails (@filtered) { if($emails =~ /^\w+\@([\da-zA-Z\-]{1,}\.){1,}[\da-zA-Z-]{2,6}$/) { print $fh "$emails\n"; print "$emails\n"; } } } close $fh; close MYFILE; print "done\n";