#! /usr/bin/perl use strict; my @unsorted = ("A","B","C",9,"B","B","AAA","D",4,"EE","BBB",55,"BBBB","CCC",55,"BBDB","BBB","JJ","ZZZZZZ","A blue flamingo doesn't have spots"); my %listed=(); my @sorted = grep { ! $listed{$_} ++} map { $_->[1] } sort { $a->[0] <=> $b->[0] || $b->[1] cmp $a->[1] } map { [ length $_, $_ ] } @unsorted; for(@sorted){ print "$_\n"; }