in reply to require & import $module_name
You are correct chromatic, I needed to use a named lexical there. Not really sure why that is. This works:
use Symbol 'delete_package'; foreach my $module (@modules) { require "sub/$module.pm"; import $module qw(foo bar); foo(); bar(); #cleanup delete_package($module); }
As well as the function call format that you wrote it in.
strict; system('rm -fr /home'), lol! tobyink, the modules are all created by myself so I'm (reasonably) sure that nothing like that will every happen. Thanks for looking out for me, though =D
use Symbol 'delete_package'; foreach my $module (@modules) { eval "use sub::$module"; import $module qw(foo bar); foo(); bar(); #cleanup delete_package($module); }
Works fine as well.
CountZero, cool little module. That does the trick too:
use Symbol 'delete_package'; require UNIVERSAL::require; foreach my $module (@modules) { "sub::$module"->require or die $@; import $module qw(foo bar); foo(); bar(); #cleanup delete_package($module); }
Thanks guys!
Strange things are afoot at the Circle-K.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: require & import $module_name
by chromatic (Archbishop) on Jul 19, 2012 at 20:53 UTC |
In Section
Seekers of Perl Wisdom