Thank you, Bob and Chris Charley,
In the Bob's example:
e.g.
> for (1 .. 5) {
> my @arr = ($_) x $_;
> print [EMAIL PROTECTED], " = @arr\n";
> }
>
> ARRAY(0x8103418) = 1
> ARRAY(0x80f827c) = 2 2
> ARRAY(0x8103490) = 3 3 3
> ARRAY(0x81034cc) = 4 4 4 4
> ARRAY(0x8103514) = 5 5 5 5 5
how can i access, for example, the array referenced by (0x80f827c)?
Thank you very much,
Rod
--- Bob Showalter <[EMAIL PROTECTED]> wrote:
> Rod Za wrote:
> > Hi,
> >
> > I have a doubt. If i create an array inside a foreach loop using
> > `my`, is this array recreated every time or every time the loop pass
> > by i got a new array?
>
> Yes, it's a new array.
>
> Try this:
>
> for (1 .. 5) {
> my @arr = ($_) x $_;
> print [EMAIL PROTECTED], " = @arr\n";
> }
>
> Output:
> ARRAY(0x81017e4) = 1
> ARRAY(0x81017e4) = 2 2
> ARRAY(0x81017e4) = 3 3 3
> ARRAY(0x81017e4) = 4 4 4 4
> ARRAY(0x81017e4) = 5 5 5 5 5
>
> The address of the array never changes, so it looks like the same array.
> However, if you save a reference to the array inside the loop, watch what
> happens:
>
> my @outer;
> for (1 .. 5) {
> my @arr = ($_) x $_;
> print [EMAIL PROTECTED], " = @arr\n";
> push @outer, [EMAIL PROTECTED];
> }
>
> Output:
> ARRAY(0x8103418) = 1
> ARRAY(0x80f827c) = 2 2
> ARRAY(0x8103490) = 3 3 3
> ARRAY(0x81034cc) = 4 4 4 4
> ARRAY(0x8103514) = 5 5 5 5 5
>
> Here it's proven that you create a new array each time. If you never take a
> reference to the "my" variable that lives beyond the scope of the loop, Perl
> can reuse the old array, and just put new contents into it. I'm not sure if
> down in the guts of perl it's actually releasing and then recreating the
> array or whether it's just reusing the old array. Really doesn't matter; the
> result is you always get a different array and they will be kept separate if
> necessary.
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>