Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: sub and anonymous sub

by grantm (Parson)
on Jun 21, 2002 at 20:49 UTC ( #176398=note: print w/ replies, xml ) Need Help??


in reply to sub and anonymous sub

A related question that may help shed some light is "why is 'my' documented in the 'perlfunc' man page?"

The answer would seem to be that 'my' has both compile-time and run-time effects. At compile time, the Perl interpreter decides the scope of the variable based on lexical scoping rules. At run time, Perl allocates memory for the variable and starts tracking references to that memory. This latter step happens each time the line is excuted.

This is why a mod_perl script should never use 'my' to declare a 'global' variable. At compile time, any block which refers to the variable will get pointed at the first instantiation. On the second invocation, when the 'my' line is reached, a new variable is created but all the other blocks are still pointing at the old one.


Comment on Re: sub and anonymous sub

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (6)
As of 2014-10-21 00:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (94 votes), past polls