24 May 2021 11:36:26 UTC
- Distribution: FunctionalPerl
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (0)
- Testers (69 / 1 / 0)
- KwaliteeBus factor: 1
- License: perl_5
- Perl: v5.16.4
- Activity24 month
- Download (443.46KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:3 non-PAUSE usersPFLANZE Christian Jaegerand 1 contributors
- Christian Jaeger
Chj::ruse - reload modules
use FP::Repl; use Foo; use Chj::ruse; use Bar qw(biz bim); repl; # edit the Foo.pm or Bar.pm files, then (possibly from the repl): > ruse; # reloads all changed modules, and re-does all imports # which have happened for those modules since Chj::ruse has # been loaded. use Chj::ruse 'r'; # imports alias `r` for `ruse` (shorter to type)
Extended copy of Module::Reload which modifies Exporter.pm so that exports are tracked, so that these are redone as well.
One function is exported: ruse. It does the equivalent of Module::Reload->check, and re-exports stuff as far as possible.
The function takes an optional argument: a temporary new debug level, which shadows the default one stored in $Chj::ruse::DEBUG. 0 means no debugging info. -1 means be very silent (set $^W to false, to prevent redefinitions of subroutines *which are NOT in the namespace being reloaded* (subroutines in the namespace being reoaded are deleted first, so there is never given a warning in this 'normal' case)).
Each time import is called on a particular modules ("use Foo qw(biz baz)"), the previous import arguments from the previous call is forgotten. Thus if a module is use'd/import'ed multiple times in a row from the same source file, only part of the import list is remembered. Thus not everything is re-exported by ruse. (Can this be solved?)
Hm, if an error prevented a module from having been loaded, somehow reload doesn't (always?) work ? why?
This module might have problems with threads - I don't know if other threads might try to run subroutines which have been deleted before being defined again.
This is alpha software! Read the status section in the package README or on the website.
Module Install Instructions
To install FunctionalPerl, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install FunctionalPerl
For more information on module installation, please visit the detailed CPAN module installation guide.