#! perl -slw use strict; my @array = (2.5 ,4.8, 3.2, 8.5, 8.2, 12.5); my @orderedIndexes = sort{ $array[ $b ] <=> $array[ $a ] } 0 .. $#array; my $n = @array; $array[ $_ ] *= @array / $n-- for @orderedIndexes; print "@array"; __END__ c:\test>junk68 15 9.6 9.6 10.2 12.3 12.5