for ( my $i = scalar(@$results) - 1; $i >= 0; $i-- ){ for ( my $j = 1; $j <= $i; $j++){ if ( $$results[$j - 1]{'hits'} < $$results[$j]{'hits'} ){ my $temp = $$results[$j - 1]; $$results[$j - 1] = $$results[$j]; $$results[$j] = $temp; } } }