SV* new( char* class, char* name, char* rank, long serial ) { Soldier* soldier; SV* addr; SV* perlObj; New( 42, soldier, 1, Soldier ); soldier->name = savepv(name); soldier->rank = savepv(rank); soldier->serial = serial; addr = newSViv( (IV)soldier ); SvREADONLY_on( addr ); perlObj = newSVrv( addr, class ); return perlObj; } #### IV new( char* class, char* name, char* rank, long serial ) { Soldier* soldier; New( 42, soldier, 1, Soldier ); soldier->name = savepv(name); soldier->rank = savepv(rank); soldier->serial = serial; return (IV)soldier; }