in reply to XSUB: pass scalar by reference and assign value
By the way, you don't need to pass references.
sub_from_xs(my $num, my $str);
void sub_from_xs(SV *num, SV *str) PREINIT: int nx; char *sx; CODE: nx = get_nx(); sx = get_sx(); sv_setiv_mg(num, nx); sv_setpv_mg(str, sx);
But I would personally prefer to see this function return a two element list.
my ($num, $str) = sub_from_xs();
void sub_from_xs() PREINIT: int nx; char *sx; PPCODE: nx = get_nx(); sx = get_sx(); EXTEND(SP, 2); PUSHs(sv_2mortal(newSViv(nx))); PUSHs(sv_2mortal(newSVpv(sx, 0)));
|
|---|