That sort of "bug" is trivial to work around. Move the contents of the CHECK block into a named subroutine and then have the CHECK block call it. This allows compile-time loading of the module to still work as planned and allows runtime loading to manually compensate. You'd just call the new named function after loading your module.
Before
package Bad::Module; CHECK { ... # Lots of code } package Your::Code; require Bad::Module; # Error! Too late for CHECK.
After
package Bad::Module; CHECK { STUFF_THAT_NEEDS_DOING(); } sub STUFF_THAT_NEEDS_DOING { ... # Lots of code } package Your::Code; require Bad::Module; ... # All your code Bad::Module::STUFF_THAT_NEEDS_DOING();
⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊
In reply to Re^2: Class::Std and run-time loading.
by diotalevi
in thread Class::Std and run-time loading.
by Pic
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |