Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://176398]
help
Chatterbox?
[MidLifeXis]: In a small group / company, at least you know who needs to buy the next round of beer for their mess-up.
[MidLifeXis]: :-)
[Discipulus]: are sure you are not really named "%Firstname% %Lastname%..." ? have you check your identity card?
[Discipulus]: Bobby Tables?

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (10)
As of 2017-01-19 12:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (170 votes). Check out past polls.