Typo corrected and en
stricted
my @d = qw(AAA30 BBC5 SHT12H DAL33B BBC49 AAA31 DAL33A BBC6 SHT12G BBC
+50);
my %seen;
map { print "$seen{$_},$_\n" if $seen{$_}; }
map { my $v = $_; my $l = chop $v; $seen{$v.++$l}=$_; } @d;
__END__
SHT12G,SHT12H
DAL33A,DAL33B
AAA30,AAA31
BBC5,BBC6
BBC49,BBC50?
my @d = qw(AAA30 BBC5 SHT12H DAL33B BBC49 AAA31 DAL33A BBC6 SHT12G BBC
+50);
my %seen;
map { print "$seen{$_},$_\n" if $seen{$_}; }
map { (my $v = $_ ) =~ s/(\d+|[A-Z])$//; my $l = $1; $seen{$v.++$l}=$_
+; } @d;
__END__
SHT12G,SHT12H
DAL33A,DAL33B
AAA30,AAA31
BBC5,BBC6
BBC49,BBC50