Hello perlmonks,
Aim: To start tracing of the module flow in my project once execution started based on user choice.
Description: When user wants to see the trace of the module file he/she enable the traceing just by setting the trace parameter to TRUE in project configuration file (before starting the execution).
Solution: Tried Core module: use Attribute::Handlers;
Flow: Once the execution started it first check the trace parameter value and if it is TRUE then it reads the module file and changes the subroutine with sub foo: TRACE {...} and adds the Core module "Attribute::Handlers" as shown above.
Once the new module is generated, then we try to load it dynamically - eval "use module_name;";
Result: module_name module gets loaded successfully and i can call its subroutines, but those subroutines shows normal behaviour i.e. it is not using sub TRACE: ATTR {...} present in the module.
Validated: I tried to load the new modifiled module using static loading,like ... use module_name; It is loading successfully and using the TRACE sub for ATTR.
I need your help here to understand this behaviour change in core module when using with eval i.e. loading dynamically. Please let me know how i can make it correct without changing the design of the code.
Thanks.
In reply to Core module: Attribute::Handlers behaviour by enigma
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |