in reply to extracting and using values from a matrix file

use Math::MatrixReal; #update: Math::MatrixReal->new_from_string(<<'MATRIX'); [ 0 48.23 17.90] [ 48.23 0 49.58] [ 17.90 49.58 0] [ 59.62 52.04 65.80] [ 62.20 56.02 68.82] [ 35.37 37.87 36.52] [ 27.33 50.73 31.85] MATRIX
Then all your stuff reduces to finde the appropriate indices to iterate over. For the more exotic itarations
use Algorithm::Combinatorics;
For the column sums remember that with the matrix X and the rows(X)-vector I of one X'1 gives the sums for every column.