http://www.perlmonks.org?node_id=396438


in reply to •Re^5: What can we assume in a BEGIN block ?
in thread What can we assume in a BEGIN block ?

Yep, I think my main problem was understanding what 'parse' meant.

Discussion below uses this code

our $initialised = 0; BEGIN { _initialise(); $initialised = 1; }

Initially (when I didnt understand the problem) I thought the bare (not in a BEGIN) our $initialised = 0; meant 'found a scalar declaration, allocate memory, create an entry in the symbol table that references that location,and put a 0 in that memory location. Now parse and run the BEGIN block, which will result in $initialised having a 1 in it'.

Now I (think/know) it means 'found a scalar declaration, allocate memory, create an entry in the symbol table that references that location,and generate some opcodes that will result in a 0 being put in that location at runtime.Now parse and run the BEGIN block, which will result in $initialised having a 1 in it, which will get clobbered back to 0 by the opcodes at runtime'

Thanx merlyn for taking the time to break this down for me. I hope I have it straight now.

use brain;