Why not simply look at the first two letters and see if they changed?
my $last = "";
while (<DATA>) {
my (undef,$number,$item,$rest) = split /\s+/, $_, 4;
my $current_two_letters = substr($item,0,2);
if ($current_two_letters ne $last) {
print "--- Break here (change from $last to $current_two_lette
+rs)\n";
};
print $_;
$last = $current_two_letters;
};
__DATA__
1930: Nails <-- #Na here
1931: Naked
1941: Nearsighted <-- #Ne here
1942: Neck
1961: Newspaper_Reporter
1963: Nickname <-- #Ni here
1964: Niece
1971: Nipples
1972: Nobility <-- #No here
1973: Noise
1981: November
1982: Nuclear_Bomb <-- #Nu here
1984: Numbers
1989: Nuts
1990: Nymph