Hi,
I'm trying to find a way to get 'application return value'.
Just the same as 'package return value', usually 1 or "All your base are
belong to us" in parent.pm
Is it possible to get the same value from application after running
something like:
perl_parse(my_perl, xs_init, argc, argv, (char **)NULL);
perl_run(my_perl);
Perl app is very simple, just like:
#!/usr/bin/env perl
[ qw/some values in arrayref/ ]; # this is return value
Currently I'm using eval replacement:
I call perl_parse with char *my_argv[] = { "", "-e", "0" } and then
loading Perl app with 'do':
SV *call = newSVpvf(aTHX_ "sub { do '%s' }", app);
SV *cvrv = eval_pv(SvPV_nolen(call), FALSE);
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
int count = call_sv(cvrv, G_EVAL|G_SCALAR);
SPAGAIN;
SV *retval = (SV*)POPi;
But it looks like hack. Maybe there's better way to run application and
get it return value?
Cheers,
Yaroslav