stevieb has asked for the wisdom of the Perl Monks concerning the following question:
Good day esteemed friends,
I'm writing a new module that will be long running. This module will have a function that requires code from another one of my modules (which loads 115+ other modules and dependencies), but this function will only be called on extremely rare situations so I don't want to use it.
I've written some mock-up (working) test code, and I'm just looking to see if this is a sane thing to do, and/or feedback on alternative approaches.
use strict; use warnings; use Symbol qw(delete_package); my @pre_require = keys %INC; print "Modules pre-require: " . @pre_require . "\n"; require Devel::Examine::Subs; import Devel::Examine::Subs; my @post_require = keys %INC; # do something with imported module immediately after # getting the post-require %INC count ... print "Modules post-require: " . @post_require . "\n"; my $count = @post_require - @pre_require; print "Additional modules loaded: $count\n"; for my $file (@post_require){ if (! grep /$file/, @pre_require){ (my $module = $file ) =~ s/\//::/g; $module =~ s/\.pm$//; delete_package $module; delete $INC{$file}; } } __END__ Modules pre-require: 4 Modules post-require: 138 Additional modules loaded: 134 Module count post cleanup: 4
Thanks,
-stevieb
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Is this a safe way to 'un'-require a module? (don't)
by tye (Sage) on Sep 10, 2015 at 18:36 UTC | |
|
Re: Is this a safe way to 'un'-require a module?
by jeffa (Bishop) on Sep 10, 2015 at 18:31 UTC | |
|
Re: Is this a safe way to 'un'-require a module?
by BrowserUk (Patriarch) on Sep 10, 2015 at 19:44 UTC | |
by stevieb (Canon) on Sep 10, 2015 at 20:50 UTC |