Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

way to pass command line arguments in perl embed

by jithoosin (Scribe)
on Jan 03, 2006 at 10:56 UTC ( [id://520556]=perlquestion: print w/replies, xml ) Need Help??

jithoosin has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I have read in perlembed that we can execute a perl file using "perlrun" by giving the value of argv(1) as the name of the perl file to be executed. I also want pass arguments to the perl file .I want to pass arguments in the same way as we pass command line arguments to perl file.To make things clear, let me say that i cannot use a subroutine inside the perl file to accept the arguments( as in case of "call_pv" ). Is there any way by which i could pass arguments to perl file

Thanks
Kiran

Replies are listed 'Best First'.
Re: way to pass command line arguments in perl embed
by polettix (Vicar) on Jan 03, 2006 at 13:43 UTC
    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: perlquestion [id://520556]
Approved by holli
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (6)
As of 2024-03-28 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found