SV * overload_add_eq(SV * obj, SV * addon, SV * third) { Card* c = (Card *)SvIV(SvRV(obj)); SvREFCNT_inc(obj); c->value += SvIV(addon); return obj; }