The perl_parse() function probably does what you're looking for. From perlapi: perl_parse
Tells a Perl interpreter to parse a Perl script.
See perlembed.
int perl_parse(
PerlInterpreter* interp,
XSINIT_t xsinit,
int argc,
char** argv,
char** env)
perlembed has some examples using; the argv parameter in perl_parse(). Another bare one could be something like this (vaguely inspired by the PerlPower example but omitting all the surrounding stuff):#include <EXTERN.h>
#include <perl.h>
static PerlInterpreter *my_perl;
int main (int argc, char *argv[], char *env[]) {
char *private_argv[] = { "", "script.pl", "some", "args" };
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, NULL, 4, private_argv, NULL);
perl_run(my_perl);
/* ... */
}
/* ... */
Note that these are arguments as you would find in a real command line; this means that -e, for example, gets caught by the perl_parse() function, which looks for the next argument to find an inline sequence of statements. There are a couple of examples in perlembed that use this feature.
Flavio
perl -ple'$_=reverse' <<<ti.xittelop@oivalf
Don't fool yourself.
|