Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: A mystery of conditional loading

by bellaire (Hermit)
on Mar 23, 2009 at 01:31 UTC ( [id://752468]=note: print w/replies, xml ) Need Help??


in reply to A mystery of conditional loading

My initial suspicion was that this had to do with the imports, if only because this module does something different than the vanilla use and Exporter stuff. Sure enough, the documentation for the module which does the actual work of loading other modules (Module::Load) states the following:
Module::Load cannot do implicit imports, only explicit imports. (in other words, you always have to specify explicitly what you wish to import from a module, even if the functions are in that modules' @EXPORT)
Therefore, for you to have access to decode_base64, you have to explicitly specify that you want that sub imported from MIME::Base64. Unfortunately, the code which does the load in Module::Load::Conditional doesn't specify any explicit exports, and it isn't structured to allow this (see line 481 of the source of Module::Load::Conditional):
eval { load $mod };
The explicit imports would be a second argument to load, but none is passed here. Therefore, this solution as it stands won't work for you. You'll either need to patch the module to support explicit exports, submit the bug to the module maintainer, or use the fully qualified sub name MIME::Base64::decode_base64 in your code.

Replies are listed 'Best First'.
Re^2: A mystery of conditional loading
by Llew_Llaw_Gyffes (Scribe) on Mar 23, 2009 at 02:37 UTC

    Ah, I'd missed the detail of no implicit imports.

    Well, I can work with that. I'm still curious why some calls were working and others weren't. encode_base64 gets called before, in execution sequence, decode_base64 does, yet it worked.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2024-04-25 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found