Because it isn't localizing, which creates an entirely isolated new thing for $_ to refer to. It's binding, in which $_ takes on the role of another scalar. The results of modifying $_ inside an aliasing construct persist past that construct, even if not in $_. When you localize it, the result is forever lost after the block. local creates an isolated reality; the aliasing constructs do not.
Makeshifts last the longest.
| [reply] [Watch: Dir/Any] |
Ah, that's a good explanation. Thanks!
| [reply] [Watch: Dir/Any] |