in reply to Re^2: slurping styles
in thread slurping styles
No can do. I don't know why.
Update: Actually, it's quite basic. The assignment of do's return value causes it to be copied. You'll notice the same effect from subroutines.
use Devel::Peek qw( Dump ); { my $x = do { my $y = 'abcdef'; Dump($y); $y }; Dump($x); } { my $x = sub { my $y = 'abcdef'; Dump($y); $y }->(); Dump($x); } __END__ SV = PV(0x226df4) at 0x226ce0 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x1822b04 "abcdef"\0 CUR = 6 LEN = 8 SV = PV(0x226e24) at 0x226d34 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x187a93c "abcdef"\0 <-- new buffer CUR = 6 LEN = 8 SV = PV(0x226e0c) at 0x1830320 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x182c84c "abcdef"\0 CUR = 6 LEN = 8 SV = PV(0x226e60) at 0x226d70 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x1855fac "abcdef"\0 <-- new buffer CUR = 6 LEN = 8
|
|---|