Here is my comment --> answer:
I guess $matrix[$i][$j]
is a reference to a hash because of $matrix[$i][$j]{score}
used in print statement. So it 's never an int.
I'd do (with some fixes):
for ( my $i = 0 ; $i < $#matrix ; $i++ ) {
# __^^
for ( my $j = 0 ; $j < $#{ $matrix[$i] } ; $j++ ) {
# __^^
if (not isint $matrix[$i][$j]{score} ) {
# __^^^^^^^
printf MYFILE ("%.1f",$matrix[$i][$j]{score});
}
else {
print MYFILE $matrix[$i][$j]{score}.' ';
}
}
print MYFILE "\n";
}
And don't forget:
use strict;
use warnings;
in all your scripts, always.