my @list = ( qw( apple Alpha aLBAtross aLbAcOre etc... ) ); # Convert our list into the ( [APPLE apple], ... ) form with map: @result = map { [ uc($_), $_ ] } @list; # Now sort the list: @result = sort {$a->[0] cmp $b->[0]} @result; # Now convert the resulting list back into (aLbAcOrE aLBAtross...) format: @result = map { $_->[1] } @result;