Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re^2: when $$s =~ m/\G.../gc is too verbose

by stefp (Vicar)
on Feb 03, 2006 at 00:09 UTC ( #527508=note: print w/replies, xml ) Need Help??

in reply to Re: when $$s =~ m/\G.../gc is too verbose
in thread when $$s =~ m/\G.../gc is too verbose

Oops, I forgot it. I always localize or lexicalize variables proper to a subroutine That's why I never noticed that $_ is not implicetely localized at the entry of a subroutine contrary to what I thought.

Sadly, localizing *_ or $_ doesn't play well with reference shuffling of strings with positions.

sub lexer { (*_) = @_; print $1 if m/\G(A)/gc || m/\G(B)/gc ; } my $a = "AB"; lexer \$a; ; lexer \$a;
This prints "A" then "B"; If I add a local *_ or a local $_, at the entry of the lexer routine, that does not work anymore. So much for a cool trick.

-- stefp