Subject: | Preserved localised values are not identifiable |
The preserved value of a `local` statement is captured somewhere on the heap, but not in a way any identification can see it:
Given:
eval: our $FOO = "outer value"; { local $FOO = "inner value"; Devel::MAT::Dumper::dump("inside.pmat"); }
We find
Show quoted text
pmat> find pv "inner"
SCALAR(PV) at 0x55bbaf9aef90: "inner value"
Show quoted textpmat> identify 0x55bbaf9aef90
SCALAR(PV) at 0x55bbaf9aef90 is:
└─the symbol '$Lexical::Persistence::FOO'
But yet
Show quoted textpmat> find pv "outer value"
SCALAR(PV) at 0x55bbafa22be8: "outer value"
Show quoted textpmat> identify 0x55bbafa22be8
SCALAR(PV) at 0x55bbafa22be8 is:
└─not found
--
Paul Evans