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"
In reply to Re^4: How to trick strict like Exporter does (import)
by rblasch
in thread How to trick strict like Exporter does
by betterworld
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |