Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: way to pass command line arguments in perl embed

by polettix (Vicar)
on Jan 03, 2006 at 13:43 UTC ( #520592=note: print w/replies, xml ) Need Help??

in reply to way to pass command line arguments in perl embed

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[] = { "", "", "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.

perl -ple'$_=reverse' <<<ti.xittelop@oivalf

Don't fool yourself.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://520592]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2023-03-25 18:08 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (63 votes). Check out past polls.