use Text::CSV_XS; use Email::Valid; my %email; my $csv = Text::CSV_XS->new; while (my $line = ) { chomp $line; if (my $status = $csv->parse($line)) { my @columns = $csv->fields; foreach my $column (@columns) { $email{$column} = 1 if good_email($column); } } else { warn "Could not parse ",$csv->error_input,"\n"; } } sub good_email { my $email = shift; if (Email::Valid->address($email) && $email !~ /domain\.com$/i) { return $email; } return; }