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


in reply to Re: Ref to a list not being equivalent to a list of refs to each element
in thread Ref to a list not being equivalent to a list of refs to each element

This occurs for the same reasons given above as
\"foo";
creates a references to a constant value whereas
\"foo$x";
is creating a reference to a temporary value.

If you want to see the evidence then just put Devel::Peek to work (take note of the FLAGS values for the reference):

use Devel::Peek; my $x = 'foo'; Dump \'foo'; Dump \"bar$x"; __output__ SV = RV(0x183c90c) at 0x225fe4 REFCNT = 1 FLAGS = (PADBUSY,PADTMP,ROK,READONLY) RV = 0x225ffc SV = PV(0x22626c) at 0x225ffc REFCNT = 1 FLAGS = (POK,READONLY,pPOK) PV = 0x1831d04 "foo"\0 CUR = 3 LEN = 4 SV = RV(0x183c92c) at 0x2252ac REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x225150 SV = PV(0x2261a0) at 0x225150 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x1831cac "barfoo"\0 CUR = 6 LEN = 7
HTH

_________
broquaint