In @bigarray = (@array_1, @array_2, @array_3, @array_4,@array_5, @array_6) ; you don't get an array of arrays, but a plain array with (a copy of) the elements of @array_#s. You should change it to:

@bigarray = (\@array_1, \@array_2, \@array_3, \@array_4, \@array_5, \@array_6) ;

That is, @bigarray contains references to the @array_#s.

You are using a foreach syntax for a for cycle. If you want to stick on for, change your foreach in for, and then:

push @{$bigarray[$thearray[$i]]}, [$line, $column[$thearray[$i]];

Since you are dereferencing $bigarray[$thearray[$i]], you are really pushing into @array_$i

If you want to use foreach you could just change your loop to

foreach my $i (@thearray) { push @{$bigarray[$i]}, [$line, $column[$i]]; }

Whatever you prefer, it's a matter of style :-)

Ciao!
--bronto

# Another Perl edition of a song:
# The End, by The Beatles
END {
  $you->take($love) eq $you->made($love) ;
}


In reply to Re: How can I define arrays using foreach loop by bronto
in thread How can I define arrays using foreach loop by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":