I want to see every place when variable in perl script is created/accessed/destroyed
It is easily reachable using tie
or Variable::Magic
But how to apply this magic automatically when variable is created?
I want to see every place when variable in perl script is created/accessed/destroyed
It is easily reachable using tie
or Variable::Magic
But how to apply this magic automatically when variable is created?
You can take a look at B::Xref which generates a cross reference listing of all variables in your application. Basically, you need to walk the byte code to find all variable declarations/initializations. You can also alter the byte code, i.e. add code to tie the variables. However, I cannot point you to an example, because this is rarely done.
As an alternative, you could use a code filter to add the tie() instructions. However, code filters are not guaranteed to correctly identify variable declarations/initializations.
© 2022 - 2024 — McMap. All rights reserved.
BEGIN { *CORE::GLOBAL::my = sub{ apply_magic_to_new_variable( shift ) } }
Howevermy
maybe called as bareword only. It will be very handy if called with the reference to new variable when this hook supplied – Twotimedebugger
which will show all variables which are created in one scope, but accessed/destroyed from others. So I draw dataflow with Graphviz for thirdparty modules. Just running:perl -d:DebugHooks::DataFlow script.pl
– Twotime