SV = PVGV(0x816c6e8) at 0x814f6d8 GP = 0x816c720 CV = 0x814f714 SV = PVGV(0x816f938) at 0x814f810 GP = 0x81709f8 CV = 0x0 <-- &Child::f doesn't exist CVGEN = 0x0 #### SV = PVGV(0x816f938) at 0x814f810 GP = 0x81709f8 CV = 0x814f714 <-- &Child::f aliased to &Base::f CVGEN = 0x4d <-- ...for method dispatch only #### SV = PVGV(0x816c6e8) at 0x814f6d8 # Reference (at 0x814f6d8) to typeglob (at 0x816c6e8)? GP = 0x816c720 # Address of typeglob? Has AV, HV, CV. CV = 0x814f714 # Address of CV of f() SV = PVGV(0x816f938) at 0x814f810 # Akin to above GP = 0x81709f8 # "" CV = 0x0 # Child::f()'s pointer to CV, equiv place to Base::f() CVGEN = 0x0 # "generated CV"? do you mean "this CVGEN 'slot' is used for nothing else than method dispatch"? #### gv.c 453: GvCVGEN(topgv) = PL_sub_generation; #### gv.c 457- else if (topgv && GvREFCNT(topgv) == 1) { 458- /* cache the fact that the method is not defined */ 459: GvCVGEN(topgv) = PL_sub_generation; ... 1433- /* Adding a new name to a subroutine invalidates method cache */ 1434: PL_sub_generation++; #### dump.c 1544: Perl_dump_indent(aTHX_ level, file, " CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv)); #### sv.c 3330- GvCVGEN(dstr) = 0; /* Switch off cacheness. */