in reply to Remove equal but different duplicates from array

As the key, use something that would be the same for both your duplicates, e.g. grep !$saw{lc $_}++, @names.

Or perhaps the more complicated: grep {(my $temp = lc $_) =~ y/a-z//cd; !$saw{$temp}++} @names