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


in reply to What is the scope of BEGIN? Or... when does it "begin?"

I am puzzled, too. So far I did things like:

use strict; BEGIN{unshift (@INC,"\\mylib");} use mylib1;
Which worked perfectly. After reading argvs node, I tested:

use strict; use mylib1; BEGIN{unshift (@INC,"\\mylib");}
Which produced an error. So far I thought BEGIN{} would be executed always before anything else...

Replies are listed 'Best First'.
Re^2: What is the scope of BEGIN? Or... when does it "begin?"
by Mutant (Priest) on May 06, 2005 at 08:38 UTC
    See tlm's reply above. use is impicitly wrapped in a BEGIN. And since BEGIN's have no precedence over each other, your second example is effectively:
    BEGIN { require mylib1; mylib1->import(); unshift (@INC,"\\mylib"); }
    (I left out 'use strict' for simplicity's sake).