my @old = ( "10.5 AA", "9 AC", "2 BB"); my $max_len = 0; for (@old) { $max_len = length($_) if length($_) > $max_len } my @new = sort {$b cmp $a} map { my $x=''; $x.='0' for (1..$max_len-length($_)); $x.$_; } @old;