typedef struct _mystruct1 {
int val;
int (* init) (void *object1, void **object2);
} mystruct1;
typedef struct _mystruct2 {
mystruct *ptr;
} mystruct2;
####
mystruct2 *mine;
int res;
struct obj *object1, **object2;
.....
mine->ptr->val = 100;
res = mine->ptr->init(object1, object2);
####
print "$mine->{"ptr"}->{"val"}"; # This seems to work
$mine->{"ptr"}->{"init"}(object1, object2); # This does not work
####
rh = (HV *)sv_2mortal((SV *)newHV());
hv_store(rh, "val", 3, newSViv(mine->ptr->val), 0);
hv_store(rh, "init", 4, newRV((SV *)mine->ptr->init), 0); # This line did not work
####
if (SvROK ((SV *) mine->ptr->init)) {
type = SvTYPE(SvRV((SV *)mine->ptr->init));
printf ("Something ..%d", type);
}