my @ix = sort { $myarray[$b] <=> $myarray[$a] } 0..$#myarray; $div = @myarray; $myarray[$_] *= $div-- / @myarray for @ix; print "@myarray\n" #### my $div; $myarray[$_] *= ++$div / @myarray for sort { $myarray[$a] <=> $myarray[$b] } 0..$#myarray;