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?
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
my $copy_of_g2 = $g2; #OK. I can still read $g2.
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.