#!/usr/bin/perl my $il; my %emails; while( $_ = ) { chomp; split(/\t/, $_); next unless @_; if( @_ == 1 ) { $il = $_; $il =~ s/\W//g; } else { my ($email, $name) = ("", $_[1]); ($name =~ s/([\w\.\-]+@[\w\.\-]+)//) && ($email = lc($1)); $name =~ s/[<>()"]//g; my $line = $il."\t".$_[0]."\t".$email."\t".$name."\n"; if( exists($emails{$email}) ) { print STDERR "Duplicate entry ($email):\n$emails{$email}$line\n"; } else { $emails{$email} = $line; } } } my $c = 1; foreach my $key (sort keys %emails) { print $c++, "\t", $emails{$key}; }