SV *tmp = newSVsv(foo); do_something(tmp); SvREFCNT_dec(tmp); #### SV *tmp = sv_2mortal(newSVsv(foo)); do_something(tmp); /* no clean up code required here */ #### SV *tmp = sv_2mortal(newSVsv(foo)); if (av_store(av, ix, tmp)) SvREFCNT_inc(tmp);