http://www.perlmonks.org?node_id=843961


in reply to Re: Best practices with globals and subroutine arguments
in thread Best practices with globals and subroutine arguments

Would it be useful then perhaps, to have the ablity to mark a variable as readonly if current scope is below the scope in which a variable was declared?

ie. Variable can only be modified within the scope it was declared and not somewhere below?

use strict; use warnings; my $g1; my $g2 :resticted ; #or some other attribute mechanism $g1 = 'boo'; $g2 = 'blah'; { $g1 = 'changed' ; #OK. Same behaviour as now $g2 = 'cant change'; #Can't do this, ideally throw an exceptio +n my $copy_of_g2 = $g2; #OK. I can still read $g2. } print "$g1\n" print "$g2\n" __END__ changed blah
I have no idea if this is possible (which I actually consider secondary), I'm asking if anyone else thinks this type of functionality would be useful to have. Or if this behaviour is already available which module(s) provide it.