my (%all, %clean, %fdnc); while (my $row = $csv->getline($input)) { # skip over whatever needs skipped ...; $all{$row->[0]}= 1 if $row->[0]; $clean{$row->[1]}= 1 if $row->[1]; $fdnc{$row->[2]}= 1 if $row->[2]; } for (sort keys %all) { say $_ unless $clean{$_} or $fdnc{$_}; }