in reply to Re^3: How to trick strict like Exporter does (import)
in thread How to trick strict like Exporter does
Just for reference, here's a comparison of the internals. Note the additional IMPORT( SV ) in FLAGS.
With package imp;.Without package imp;.C:\>perl -MDevel::Peek -e "BEGIN { require 'imp.pl'}; print Dump(*foo) +" SV = PVGV(0x1950c74) at 0x195aa84 REFCNT = 2 FLAGS = (GMG,SMG,MULTI,IN_PAD,IMPORT( SV )) IV = 0 NV = 0 MAGIC = 0x193716c MG_VIRTUAL = &PL_vtbl_glob MG_TYPE = PERL_MAGIC_glob(*) MG_OBJ = 0x195aa84 NAME = "foo" NAMELEN = 3 GvSTASH = 0x2260dc "main" GP = 0x1950cc4 SV = 0x19307cc REFCNT = 1 IO = 0x0 FORM = 0x0 AV = 0x0 HV = 0x0 CV = 0x0 CVGEN = 0x0 GPFLAGS = 0x0 LINE = 2 FILE = "imp.pl" FLAGS = 0x1a EGV = 0x195aa84 "foo"
C:\>perl -MDevel::Peek -e "BEGIN { require 'imp.pl'}; print Dump(*foo) +" SV = PVGV(0x195064c) at 0x1930730 REFCNT = 2 FLAGS = (GMG,SMG,MULTI,IN_PAD) IV = 0 NV = 0 MAGIC = 0x1959054 MG_VIRTUAL = &PL_vtbl_glob MG_TYPE = PERL_MAGIC_glob(*) MG_OBJ = 0x1930730 NAME = "foo" NAMELEN = 3 GvSTASH = 0x2260dc "main" GP = 0x195ecf4 SV = 0x19307cc REFCNT = 1 IO = 0x0 FORM = 0x0 AV = 0x0 HV = 0x0 CV = 0x0 CVGEN = 0x0 GPFLAGS = 0x0 LINE = 1 FILE = "imp.pl" FLAGS = 0xa EGV = 0x1930730 "foo"
|
|---|