in reply to Use of uninitialized value
I get those warnings (with use warnings in effect). The problem comes from this loop.
my @lnPAM1=(); LINE: for (my $i=0; $i<20; $i++){ for (my $j=0; $j<20; $j++){ if ($matrix[$i][$j] > 0){ $lnPAM1[$i][$j] = log $matrix[$i][$j]; }else{ next LINE; } } }
When a matrix element equals zero, that value of @lnPAM1 remains undefined, and that undefined value is being used at line 64.
$lnPAM1[$i][$j]= ($lnPAM1[$i][$j]) /($mutrate*100);
For instance, $lnPAM1[0][17] and $lnPAM1[0][18] are undef. To avoid the warnings, you'll need to either assign some value to all of them or exclude matrix elements which are undef from executing line 64.
|
---|
In Section
Seekers of Perl Wisdom