The problem then comes in is that $_ is global, and if your function modifies it, that could cause a very, very nasty bug
I would tend to turn that statement around and say that if your code relies on $_ at a higher level, and clobbering it at a lower level results in chaos, then you shouldn't be using $_ at the higher level. There you should be using a lexical.
It's for this reason that I consider File::Find to be slightly brain-damaged, for it admonishes you to not modify the $_ you are given otherwise all hell breaks loose. The burden of correctness should be on the module, not the client using it. At least for older versions of perl, c.f. v5.005_03
File::Find assumes that you don't alter the $_ variable. If you do then make sure you return it to its original value before exiting your function.
Here, for instance, if you want to pass information to a callback, you should be using a function they could call instead of relying on $_.
In reply to Re: Using $_ as a temp var, especially in functions
by grinder
in thread Using $_ as a temp var, especially in functions
by BUU
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |