yes, $_ is a global variable | [reply] [Watch: Dir/Any] |
Yes, you're accessing the same $_ everywhere. So, by definition, it's a global.
Only, it temporarily gets a new value before the call to your sub, and it gets restored to its old value afterwards.
One way to that yourself is by using
local $_;
or
local $_ = 'temporary value';
which makes a copy of your value; or, as ikegami wrote in another reply, using for/foreach:
foreach('temporary value') {
# your code
}
which will loop exactly once, with $_ set to an alias of the value (meaning it's a different name for the same value, change the variable and the value will follow (or, for a constant, it might protest against the attempt to change a read-only value).
| [reply] [Watch: Dir/Any] [d/l] [select] |