Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: way to pass command line arguments in perl embed

by polettix (Vicar)
on Jan 03, 2006 at 13:43 UTC ( [id://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[] = { "", "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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2024-04-26 06:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found