use Scalar::Util qw( looks_like_number ); my %h; $h{$_}++ for split /\t/, $string; print "$_\n" for grep { $h{$_}>1 and !looks_like_number($_) } sort keys %h;