my (%count, %unique); while () { print DUP if $count{$_}++; if ($count{$_} == 1) { $unique{$_} = 1 } else { delete $unique{$_} } } print UNQ for sort keys %unique;