Tie? That's an idea I obviously didn't have. However, when trying your code, which I am ever so grateful for, I noticed that local $_ caused the carping - which was what I was trying to avoid. Since $_ was now localised, I didn't care if it was being changed because that's kinda like a new value. Somewhere in my do_something_complex function, I'm causing a file to be loaded (only once - there's lots of caching going on). And that file load has a "while (<$fh>)" line in it to parse out the file. And so I'm getting about a bazillion carps - even after localisation.
Hopefully this helps make my original query more clear... maybe not possible, but clear :-)
Update: That all said, this file load was the problem. So my code is cleaner now because of this, although the general question is, I think, a useful question - how to determine a variable changing, discounting any localised changes. In other words, a variable whose change will propogate back up the call stack.
In reply to Re^2: detecting changes in a localised variable
by Tanktalus
in thread detecting changes in a localised variable
by Tanktalus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |