Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://176398]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2017-12-15 21:08 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (443 votes). Check out past polls.