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


in reply to Re: reset named capture buffer within regex
in thread reset named capture buffer within regex

%+ and %- are "just" tied hashes which give access to the underlying named capture data buried away in the Perl core. Even if you were able to alter the hashes, there's no guarantee that it would effect the underlying data, so using ?(<mybuf>) later on in the regular expression might give surprising results.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'