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); #### 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)));