If you use -MO=Concise,-exec and put the two programs side by side, one can see the scope (enter+leave) is literally missing.
do{1;my $x=bless{}}; print "Bar" do{my $x=bless{}}; print "Bar" ================================= ================================= 1 <0> enter 1 <0> enter 2 <;> nextstate(main 3 -e:1) v:{ 2 <;> nextstate(main 3 -e:1) v:{ 3 <0> enter v 4 <;> nextstate(main 4 -e:1) v 5 <0> pushmark s 3 <0> pushmark s 6 <@> anonhash sK* 4 <@> anonhash sK* 7 <@> bless sK/1 5 <@> bless sK/1 8 <0> padsv[$x:4,5] sRM*/LVINTRO 6 <0> padsv[$x:4,5] sRM*/LVINTRO 9 <2> sassign vKS/2 7 <2> sassign vKS/2 a <@> leave vKP b <;> nextstate(main 6 -e:1) v:{ 8 <;> nextstate(main 6 -e:1) v:{ c <0> pushmark s 9 <0> pushmark s d <$> const[PV "Bar"] s a <$> const[PV "Bar"] s e <@> print vK b <@> print vK f <@> leave[1 ref] vKP/REFC c <@> leave[1 ref] vKP/REFC
In reply to Re^5: File::Temp survival and scope created by "do"
by ikegami
in thread File::Temp survival and scope created by "do"
by vr
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |