enigma has asked for the wisdom of the Perl Monks concerning the following question:
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.
|
|---|