$ perl -e "use Devel::Peek; use strict; BEGIN{*main::foo=\@main::foo; Dump(\@main::foo)}; print @foo; " SV = IV(0xac90b0) at 0xac90b4 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x99b9fc SV = PVAV(0x3faa8c) at 0x99b9fc REFCNT = 2 FLAGS = () ARRAY = 0x0 FILL = -1 MAX = -1 ARYLEN = 0x0 FLAGS = (REAL) Variable "@foo" is not imported at -e line 1. Global symbol "@foo" requires explicit package name at -e line 1. Execution of -e aborted due to compilation errors. $ perl -e "use Devel::Peek; use strict; BEGIN{package Pkg; *main::foo=\@main::foo;};package main; Dump\@foo; " SV = IV(0x3f9a40) at 0x3f9a44 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0xa8d714 SV = PVAV(0x3faaa4) at 0xa8d714 REFCNT = 2 FLAGS = () ARRAY = 0x0 FILL = -1 MAX = -1 ARYLEN = 0x0 FLAGS = (REAL) #### $ perl -e "use Devel::Peek; use strict; BEGIN{*main::foo=\@main::foo; Dump(*main::foo)}; print @foo; " SV = PVGV(0xa6ad1c) at 0x99b984 REFCNT = 4 FLAGS = (MULTI,IN_PAD) NAME = "foo" NAMELEN = 3 GvSTASH = 0x3f991c "main" GP = 0xac5fac SV = 0x0 REFCNT = 1 IO = 0x0 FORM = 0x0 AV = 0x99ba04 HV = 0x0 CV = 0x0 CVGEN = 0x0 LINE = 1 FILE = "-e" FLAGS = 0xa EGV = 0x99b984 "foo" Variable "@foo" is not imported at -e line 1. Global symbol "@foo" requires explicit package name at -e line 1. Execution of -e aborted due to compilation errors. $ perl -e "use Devel::Peek; use strict; BEGIN{package Pkg; *main::foo=\@main::foo;};package main; Dump*foo; " SV = PVGV(0xa6ad3c) at 0x99b994 REFCNT = 2 FLAGS = (MULTI,IN_PAD,IMPORT( AV )) NAME = "foo" NAMELEN = 3 GvSTASH = 0x3f9934 "main" GP = 0xac5fec SV = 0x0 REFCNT = 1 IO = 0x0 FORM = 0x0 AV = 0xa8d714 HV = 0x0 CV = 0x0 CVGEN = 0x0 LINE = 1 FILE = "-e" FLAGS = 0x2a EGV = 0x99b994 "foo" #### 360 #define SVprv_PCS_IMPORTED SVp_SCREAM /* RV is a proxy for a constant 361 subroutine in another package. Set the 362 GvIMPORTED_CV_on() if it needs to be 363 expanded to a real GV */