#!/usr/bin/perl use strict; use warnings; my @myarray = (2.5 ,4.8, 3.2, 8.5, 8.2, 12.5); my %value_map; my $counter = @myarray; for my $key (sort {$b <=> $a} @myarray) { $value_map{$key} = $key*6/$counter--; } for my $key (@myarray) { print "$key\t-> $value_map{$key}\n"; }