for $k (($j+1)..$#{$blocks[$i]}) { if ($blocks[$i][$k][4] == 88888) { my @a; for $l (($j + 1)..($k - 1)) { $a[$l][1] = $blocks[$i][$l][1]; $a[$l][2] = $blocks[$i][$l][2]; } push @aa, \@a; for my $pp (($j + 1)..($k - 1)) { print "[$pp][1] => $aa[$pp][1]\n"; print "[$pp][2] => $aa[$pp][2]\n"; } my @d; for $m (($j + 1)..($k - 1)) { my $e3 = $aa[$m][1]; print " $e3\n"; $d[$m][1] = sqrt((($aa[$m][1] - $blocks[$i][$m][1])*($aa[$m][1] - $blocks[$i][$m][1])) + (($aa[$m][1] - $blocks[$i][$m][1])*($aa[$m][1] - $blocks[$i][$m][1]))); $d[$m][2] = $m; } push @dd, \@d; my @sortedist = sort { $a -> [1] <=> $b -> [1] } @dd; for $n (($j + 1)..($k - 1)) { $temp = $blocks[$i][$n]; $blocks[$i][$n] = $blocks[$i][($sortedist[$n][2])]; $blocks[$i][($sortedist[$n][2])] = $blocks[$i][$n]; #### [0][0][0] =>1 [0][0][1] =>515.438792 [0][0][2] =>2167.220067 [0][0][3] =>0 [0][0][4] =>88888 [0][0][5] =>99999 [0][0][6] =>99999 [0][1][0] =>2 [0][1][1] =>535.930414 [0][1][2] =>2240.612915 [0][1][3] =>0 [0][1][4] =>88888 [0][1][5] =>99999 [0][1][6] =>99999 [0][2][0] =>3 [0][2][1] =>1123.073200 [0][2][2] =>2076.679934 [0][2][3] =>0 [0][2][4] =>0 [0][2][5] =>99999 [0][2][6] =>99999 [0][3][0] =>4 [0][3][1] =>1102.581578 [0][3][2] =>2003.287086 [0][3][3] =>0 [0][3][4] =>0 [0][3][5] =>99999 [0][3][6] =>99999 [0][4][0] =>5 [0][4][1] =>515.438792 [0][4][2] =>2167.220067 [0][4][3] =>0 [0][4][4] =>88888 [0][4][5] =>99999 [0][4][6] =>99999