That makes sense, but this is a contrived minimal example of the implementation. This will be run well after compile time off of config data, or object instantiation values. So the questions is can I somehow muck with the symbol table to get where I want to be? Maybe something like
while ( my($module, $args) = each %$toLoad ) {
my $str = "use $module "; # to fix typo in example
$str .= 'qw(' . $args . ')' if $args ne '1';
eval $str;
# Try and remap symbol tables to the right spot
unless ( $args eq '1' ) {
no strict 'refs';
foreach my $key ( split/\s+/, $args ) {
*$key = *$module::$key;
}
} # END unless args eq 1
} # END while each toLoad
This would cover the standard cases but fail for things like use CGI qw(:all); and similar megaKeywords
I imagine this is a standard pattern, I just don't know where to look for the docs to get at what I want without potentially digging into other modules EXPORT_* variables, which doesn't seem right either
use perl;
Everyone should spend some time pounding nails with their forehead for a while before they graduate to complicated stuff like hammers. - Dominus