SV *p = SvRV (self);
if (!SvOK (p))
return false;
sv_setiv (p, (int) data);
sv_setiv (p, (SV *) data);
return true;
}