in reply to Re: Re: Is your module clobbering predefined variables?
in thread Is your module clobbering predefined variables?

Shouldn't it be in the language - that the $_ variable is by default localized to module? It's hardly usefull to maintain the topic across multiple modules. Anybody knows how it is to be in Perl 6?

Replies are listed 'Best First'.
Re: Is your module clobbering predefined variables?
by Abigail-II (Bishop) on Apr 14, 2003 at 13:06 UTC
    No, that would be very, very bad. That would disable you to write functions "the Perl" way, that is, when given no arguments, they act on $_.

    Besides, from the language aspect, there is no such thing as a "module scope".

    Abigail

      I did not say that it should be mandatorily localized. What I meant was to localize it by default, and when the author wants there should be a language construct to override that behaviour.
Re: Re: Re: Re: Is your module clobbering predefined variables?
by John M. Dlugosz (Monsignor) on Apr 17, 2003 at 19:57 UTC
    It's discussed in Apocalypse 6, though lore had it that $_ would indeed be lexically scoped to each sub.

    Furthermore, a method will see $_ as "this" upon entry, so it will almost never work the old way (sorry, Abigail-II).

    Page 9 shows "Your caller's current topic is named $CALLER::_." and goes on to illustrate how to use it as a default parameter, so if you call it without an argument the function uses the caller's $_. But the function can call it by whatever formal name it likes for that parameter.