foreach (sort { $player{$b}[1]*1 + $player{$b}[3]*.5 <=> $player{$a}[1]*1 + $player{$a}[3]*.5 } keys %player) { print $_ . " " . join(" ", @{$player{$_}}[1..3]) . "\n"; }