#open the 2 files for input and the second for output open (FIN, "@ARGV[0]") || (die "No input file"); while(){ if(s#((\b\w*\b\s)(\b\w*\b\s)?(\b\w*\b\s)(\<)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\>))# $1 .($var =$2.$3.$4."\t".$6) #eg){} elsif(s#((\b\w*\b)(\,\s)(\b\w*\b\s)(\b\w*\b\s)?((\<)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\>)))# $1.($var = $4.$5.$2."\t".$8) #eg){} elsif(s#((\")(\b\w*\b\s)(\b\w*\b\s)?(\b\w*\b)(\")(\s)(\<)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\>))# $1.($var =$3.$4.$5."\t".$9) #eg){} elsif(s#((\")(\b\w*\b)(\,\s)(\b\w*\b)(\s\b\w*\b)?(\")(\s)((\<)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\>)))# $1.($var = $5." ".$6.$3."\t".$11) #eg){} elsif(s#((\")(\b\w*\b\s)(\b\w*\b\s)?(\b\w*\b)(\")(\s)(\[)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\]))# $1.($var =$3.$4.$5."\t".$9) #eg){} elsif(s#((\")(\b\w*\b)(\,\s)(\b\w*\b)(\s\b\w*\b)?(\")(\s)((\[)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\])))# $1.($var = $5." ".$6.$3."\t".$11) #eg){} elsif(s#((\")(\b\w*\b\s)(\b\w*\b\s)?(\b\w*\b\s)(\[)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\])(\"))# $1.($var =$3.$4.$5."\t".$7) #eg){} elsif(s#((\")(\b\w*\b)(\,\s)(\b\w*\b)(\s\b\w*\b)?(\s)((\[)(\b\w*((\.)?(\w*)?)*[@]\w*\.\w*((\.)?(\w*)?)*\b)(\])(\")))# $1.($var = $5." ".$6.$3."\t".$10) #eg){} #hash my emails $hashed{$var}++; } #print out all the emails for $var (sort keys %hashed){ print"$var\n"; }