On Thu, 27 Sep 2001 09:30:19 -0700 (PDT), Tejasvini Prasad wrote: >This code does not work correctly, but when I add a >"my" before @temp it works fine. I understand that >"my" declares a local variable....but I don't >understand how this will affect the way values are >assigned in my array. Any ideas?
Oops! Sorry for ignoring your main question. If you don't declare the variable INSIDE THE LOOP, \@temp will be the same reference every time you use it. So if you do @temp = (); push @ar, \@temp; you eventually just get an array of all the same reference to the same other array. { # loop body my @temp; push @ar, \@temp; } creates a new array with a new reference, every time. Note that if you move the declaration of @temp outside the loop, the problem comes back. So it's not a "global vs. lexical" thing. -- Bart.