in reply to Re: (nearly) readonly globals
in thread (nearly) readonly globals

Using local creates a temporary instance of the named variable, and you can do what you like with it.

But this does not apply to all special globals, i.e.:

% perl -e 'local $1 = 1' Modification of a read-only value attempted at -e line 1. % perl -e 'local $^S = 1' Modification of a read-only value attempted at -e line 1.

-- Frank

Replies are listed 'Best First'.
Re^3: (nearly) readonly globals
by Corion (Patriarch) on Jan 19, 2009 at 20:35 UTC

      I don't give up:

      % bleadperl -Mstrict -wE 'for $1 ( 10..13 ) { say $1 }' 10 11 12 13

      And now, these globals loose their magic:

      % bleadperl -Mstrict -wE 'for $1 ( 10..13 ) { $1 =~ /^(\d)/; say $1 }' 10 11 12 13

      -- Frank