Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re^3: mod_perl and imports

by Marshall (Prior)
on Sep 30, 2013 at 08:03 UTC ( #1056304=note: print w/ replies, xml ) Need Help??

in reply to Re^2: mod_perl and imports
in thread mod_perl and imports


A BEGIN code block is executed as soon as possible, that is, the moment it is completely defined, even before the rest of the containing file (or string) is parsed. You may have multiple BEGIN blocks within a file (or eval'ed string); they will execute in order of definition. Because a BEGIN code block executes immediately, it can pull in definitions of subroutines and such from other files in time to be visible to the rest of the compile and run time. Once a BEGIN has run, it is immediately undefined and any code it used is returned to Perl's memory pool.
So, yes, a BEGIN block will run when it is encountered. But it will only run once - that part of my statement is correct. But it does appear that you can intersperse BEGIN blocks within the code and they will run essentially as the code "compiles". that is cool Perl thing.

When I have used BEGIN{}, I have never interspersed these within the code, but rather have put these at the "end" of the code. In other words, this is initialization code that should be executed before the main code - not interspersed.

Comment on Re^3: mod_perl and imports

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2015-10-04 18:10 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (104 votes), past polls