in reply to Re: Re: Where is my foreach data going to?
in thread Where is my foreach data going to?

The error lies in the fact that you are incrementing $j here:
$athlete[$i][$j++] = $bug;
The problem is that since $j is one larger than before, and thus you are not printing out the same thing (2 lines later) as what you just set. (ie $athlete[0][0] != $athlete[0][1]) so you get the warning.

you might want to increment the $j by one at the end of the loop.

update: I am afraid, I might have confused you so here goes. Let's pretend we are going through the inner loop on the first pass:

$j = 0; foreach my $bug (@row) { #here $j == 0; so the following line would be #$athlete[$i][0] = $bug; $athlete[$i][$j++] = $bug #at this poing the $j == 1 because of the $j++ #on the previous line. print "\$i\$j is assignt $i:$j\n"; print "\@athlete[\$i,\$j] is assigned the value $athlete[$i][$j]\n"; #on the previous line you $j == 1 so you are refering to #$athlete[$i][1] which is not the same as what you set #but rather the value you will set the next time through. . . .
if you change the print line to:
print "\@athlete[\$i,\$j] is assigned the value $athlete[$i][$j-1]\n";
you would print the value you just set, which is what I think you are trying to do.

-enlil