0 4 5 4 0 4 5 4 0 #### A X 79 54 53 B Y 81 54 50 C Y 83 51 52 #### my @points = ( {A=>A, X=>79.620, Y=>54.720, Z=>53.034}, {A=>B, X=>81.822, Y=>54.071, Z=>50.027}, {A=>C, X=>83.871, Y=>51.966, Z=>52.424}); my @results; for my $x(0..$#points){ my $p1 = $points[$x]; for my $y (0..$#points){ my $p2 = $points[$y]; my $dist = sqrt(abs(( $p1->{X} - $p2->{X} ) **2 + ( $p1->{Y} - $p2->{Y} ) **2 + ( $p1->{Z} - $p2->{Z} ) **2)) ; $results[$x][$y] = sprintf("%.0f", $dist); } } #------------------- for my $r (@results){ printf "%.0f\t",$_ for @$r; print "\n"; } #### $d = sqrt(($rx1 - $rx2)**2 + ($ry1 - $ry2)**2 + ($rz1 - $rz2)**2); #### A B C A 0 4 5 B 4 0 4 C 5 4 0