#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" typedef struct { HV* set; char foo; } My_Class; MODULE = My::Class PACKAGE = My::Class SV* new(char* class) PREINIT: My_Class *self; CODE: Newx(self, 1, My_Class); self->set = newHV(); self->foo = 0; RETVAL = newSV(0); sv_setref_pv(RETVAL, class, (void *)self); OUTPUT: RETVAL void DESTROY(My_Class *self) CODE: /* HOW TO DESTROY self->set HERE*/ Safefree(self);