In this particular example, since the words are tab-separated, I'd probably use a brute-force approach and split the string, then step through the resulting array, incrementing a hash. Admittedly, this is not a very efficient solution for any significant amount of data.
use strict;
use warnings;
my $string = 'LOCAL Antony 17 Antony 23 1569';
my @tokens = split /\t/,$string;
my %duphash = ();
foreach (@tokens) {
$duphash{$_}++;
}
Now %duphash has a 1 for each unique value and something greater than 1 for any duplicates.
Update: I ignored your requirement for skipping over numbers -- adjust accordingly.