A reference to $1 is a reference to $1 always
my $l; our $p; my ($r1,$rl,$rp) = (\$1,\$l,\$p); 'foo' =~ /(.*)/; $l = $p = $1; print "$$r1 $$rl $$rp\n"; # foo foo foo { my $l; local $p; 'bar' =~ /(.*)/; $l = $p = $1; print "$$r1 $$rl $$rp\n"; # bar foo foo } print "$$r1 $$rl $$rp\n"; # foo foo foo
This in itself is not likely to be a problem