Hi, I've been looking at the example in the cookbook (you'll find it by searching for "Object Oriented Inline"). My interest is not so much in the OO coding (which I avoid wherever possible), but in the memory management aspect - specifically the automatic cleaning up of the blessed objects when they go out of scope. Not having to specifically call cleanup routines is really neat, imo - and it's something I've already put to good use.
The example in the cookbook deals with 'package soldier' and the C code starts with: typedef struct { char* name; char* rank; long serial; } Soldier; That structure gets blessed into package soldier, and the DESTROY() function looks like: void DESTROY(SV* obj) { Soldier* soldier = (Soldier*)SvIV(SvRV(obj)); free(soldier->name); free(soldier->rank); free(soldier); } But what if I have a second (different) structure that I wish to also bless into 'package soldier', say: typedef struct { char* name; char* address; char* occupation; long age; } Civilian; The exisiting DESTROY() routine won't cope with having to clean up Civilian structures. Is there a way that the DESTROY() routine can be modified so that it can clean up both Civilian and Soldier structures ? ... or does the Civilian structure need to be blessed into its own separate package - with its own separate DESTROY() routine ? Cheers, Rob