Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Lexical pad / attribute confusion

by adrianh (Chancellor)
on Dec 22, 2002 at 01:58 UTC ( [id://221705]=note: print w/replies, xml ) Need Help??


in reply to Re: Lexical pad / attribute confusion
in thread Lexical pad / attribute confusion

It's for that reason that you can write my $x = 10; { my $x = $x; print $x } and get 10.

Ah. This makes the behaviour of the attribute handler make sense. Hadn't thought of that. It does mean that the documentation in attributes is an oversimplification when it says:

my ($x,@y,%z) : Bent = 1;

is equivalent to

use attributes (); my ($x,@y,%z); attributes::->import(__PACKAGE__, \$x, 'Bent'); attributes::->import(__PACKAGE__, \@y, 'Bent'); attributes::->import(__PACKAGE__, \%z, 'Bent'); ($x,@y,%z) = 1;

because things like this DWIM:

my ($x,@y,%z) : Bent = (@y);

Right then. With the attribute issue out of the way - I'm still confused why INIT can see everything. Since you can also see everything in CHECK and END blocks, which are run after compilation, I still don't understand what is going on.

Replies are listed 'Best First'.
Re: Re^2: Lexical pad / attribute confusion
by djantzen (Priest) on Dec 22, 2002 at 02:05 UTC

    Since you can also see everything in CHECK and END blocks, which are run after compilation, I still don't understand what is going on.

    I think it's because at those stages in the program's lifecycle you don't have a runtime scope, or perhaps it's better said that the entire program is in their scope. They see everything written on a particular pad by the compiler, without perl hiding entries according to scoping rules. (Update: see diotalevi's remark above.)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://221705]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-25 12:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found