Stripping duplicates from a list

Adrian Lai perl at loathe.me.uk
Thu Jun 12 16:35:43 BST 2008


On 12/06/2008, 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.)
>
>
>  Kake
>
>

my %hash = map {lc($_) => $_} reverse sort @list;
my @uniquelist = values %hash;

Adrian.


More information about the london.pm mailing list