ACK!
sub popnum3 {
my ( $x, $y, $z ) = @_;
my @row = @{$aob[ $y - 1 ]};
my $mean = mean(@row);
$aob[$x][$y] = $mean * ( 1 + $z );
return $aob[$x][$y];
}
This subroutine is failing randomly - it will (apparently) run properly for 500+ lines then throw an 'undefined value in ARRAY reference'. The line referred to in the error message is my @row = @{$aob[ $y - 1 ]};
Now, $x is a column reference, $y is a row reference, $z is a pre-defined random number. @aob is a 2-d array that is also printed to a file since it has to be accessed later by a different script - I can look at that file and know that row $y-1 is fully populated. Running diagnostics also tells me that $x, $y and $z all have appropriate numeric values. When the subroutine does throw this error - $x is always 0.
Obviously I'm missing something in regards to turning row $y-1 of array @aod into @row, so pointing me in the right direction is appreciated.