Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^3: Can't call sub within same package in BEGIN block

by Anonymous Monk
on Aug 14, 2014 at 08:07 UTC ( [id://1097393]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Can't call sub within same package in BEGIN block
in thread Can't call sub within same package in BEGIN block

Thanks, I am using the BEGIN block ... instead of creating another module

You don't need a BEGIN {} block to import/export or touch %ENV (icky like a code smell potentially almost), just simply make another module :) do stuff in import, it takes args

use Local::TouchEnvFirst; ## import use Local::TouchEnvSecond -optionFantastic; use Local::TouchEnvSecond -optionNotFantastic; no Local::TouchEnvFirst; ## unimport no Local::TouchEnvSecond -tooComplicated; use Local::Madness -init => sub { warn "if you gotta run me, go ahead :)"; };

Does the light bulb turn on? :)

What I still don't understand is why use subs lost this race. Say:

Same reason, it doesn't define the subroutine, its a forward declaration, its exactly like this literal code

sub TestMe; BEGIN { TestMe } sub TestMe { warn "oh no you didn't" } __END__ $ perl testme Undefined subroutine &main::TestMe called at testme line 2. BEGIN failed--compilation aborted at testme line 2.

 

rm -rf goners

Replies are listed 'Best First'.
Re^4: Can't call sub within same package in BEGIN block
by exilepanda (Friar) on Aug 14, 2014 at 08:32 UTC
    lol~~ I was actually grouping few modules into this one... but your explanation resolved my puzzle now. Well then.. I think I'll leave this little ugly defects for now, I can live with this though ^0^

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-04-25 13:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found