in reply to Re^2: searching for strings
in thread searching for strings

right sorry! cauz i can't expect the sorting of BBC5 and BBC6 without BBC50 beetween.
the following works:
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;
and nicer, imho :)

Oha

Replies are listed 'Best First'.
Re^4: searching for strings
by FunkyMonk (Bishop) on Aug 06, 2007 at 14:16 UTC
    Typo corrected and enstricted

    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