in reply to Re^2: Scope and references
in thread Scope and references
Actually, for creates two lexical scopes. One for the entire statement, and one of the block body.
You've already demonstrated the second. Here's a demonstration of the first:
>perl -e"use strict; for (my @x) { } @x" Global symbol "@x" requires explicit package name at -e line 1. Execution of -e aborted due to compilation errors.
it seems like you don't "leave" the scope in which @a was delcared,
It's pretty clear to me the curly is the end of the scope, and you do indeed reach it.
Also, I still don't understand why the 'wrong' version creates the data structure that it does. Any thoughts on that one?
my @a; push @container, \@a; push @container, \@a;
Isn't it clear that it puts two references to the same variable into @container? Why do you think your loop is different?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Scope and references
by 7stud (Deacon) on Jun 20, 2011 at 08:01 UTC | |
by ikegami (Patriarch) on Jun 20, 2011 at 17:03 UTC |