sub index_by_length { my $conn_a = $Connections[$a]; my $diff_a = $conn_a->[0] - $conn_a->[1]; my $conn_b = $Connections[$b]; my $diff_b = $conn_b->[0] - $conn_b->[1]; return $diff_a*$diff_a <=> $diff_b*$diff_b; } my @sorted_indices = sort index_by_length 0..$#Connections;