Hi, The C-Cookbook has the following code for doing object-oriented Inline:
SV* new(char* class, char* name, char* rank, long serial) { Soldier* soldier = malloc(sizeof(Soldier)); SV* obj_ref = newSViv(0); SV* obj = newSVrv(obj_ref, class); soldier->name = strdup(name); soldier->rank = strdup(rank); soldier->serial = serial; sv_setiv(obj, (IV)soldier); SvREADONLY_on(obj); return obj_ref; } I've found that the following simpler code works just as well: SV* new(char* class, char* name, char* rank, long serial) { Soldier* soldier = malloc(sizeof(Soldier)); soldier->name = strdup(name); soldier->rank = strdup(rank); soldier->serial = serial; return sv_setref_pv(newSViv(0), class, (void *)soldier); } Any reason not to use that? -Ken