This file was automatically generated from http://svn.pugscode.org/pugs/misc/pX/Common/AST-Design/Perl5/AST.pod on Thu Jul 12 12:23:24 2007 GMT, revision 16992.
The scope node is used for every new scope in the code. It delimits the lifespan of variables and pragmas. If a pragma is defined a new scope is open, if a variable is redeclared, a new scope is open. An optimizer can reuse the scope for pragma declarations in the start of the code. But it cannot rename the re-declared variable, as the stash can be manipulated, just emit a warning.
block_decl helloworld
The package node is the root node of a Perl5 AST. It can declare subroutines, global variables. It inherits the "scope" node as every package defines a new scope.
block_decl helloworld
A block is a scope (inherits scope) defined explicitly. It tell us that it is ok to redeclare a variable, and no warning is necessary. It is also the boundary for closures.
block_decl
The variable_declaration is the super-class for scoped and global variable declaration. It defines how a variable can be declared.
Defines a variable with a limited visibility, either by name or by value. Inherits variable_declaration.
This node causes the same effect of the "our" declaration, but appears here even if the declaration didn't appears in the original code.