in reply to Re: Interesting behavior in eval block
in thread Interesting behavior in eval block
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
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Interesting behavior in eval block
by ikegami (Patriarch) on Jun 19, 2008 at 18:52 UTC |
In Section
Seekers of Perl Wisdom