in reply to Using $_ as a temp var, especially in functions
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 $_.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Using $_ as a temp var, especially in functions
by IlyaM (Parson) on Oct 23, 2002 at 11:09 UTC | |
by grinder (Bishop) on Oct 23, 2002 at 13:19 UTC | |
by IlyaM (Parson) on Oct 23, 2002 at 13:49 UTC | |
by IlyaM (Parson) on Aug 07, 2003 at 07:34 UTC |