Stripping duplicates from a list
Adriano Ferreira
aferreira at shopzilla.com
Thu Jun 12 16:37:29 BST 2008
On Thu, Jun 12, 2008 at 12:16 PM, Kake L Pugh <kake at earth.li> wrote:
> Hello. I have a list of strings of variable capitalisation, for example:
>
> aubergine
> Aubergine
> Banana
> carrot
> Daikon
> DaiKon
> daikon
> elephant
>
> What I want to do is strip out the duplicates - i.e. those strings
> which differ only by capitalisation - but keep by preference one of
> the versions that has a capital letter at the beginning. So the above
> list would map to:
>
> Aubergine
> Banana
> carrot
> [either Daikon or DaiKon - doesn't matter which]
> elephant
>
> Ideas for the neatest way to do this? Everything I've come up with so
> far is clumsy or buggy. (This might be because I'm slightly hungover,
> so sorry if this is actually a really simple problem.)
Use the common "uniq" implementation that happens in so many modules
and code out there. Something like that (if the memory does not play
tricks on me):
sub uniq {
my %seen;
return grep { !$seen{$_}++ } @_;
}
> Kake
>
>
More information about the london.pm
mailing list