in reply to A mystery of conditional loading
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):
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.eval { load $mod };
|
|---|
| 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 |