Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Embedding Perl in C -- access to builtins?

by Matts (Deacon)
on May 31, 2002 at 12:05 UTC ( #170680=note: print w/ replies, xml ) Need Help??


in reply to Embedding Perl in C -- access to builtins?

Some can be called via perlcall. See specifically perl_call_pv().


Comment on Re: Embedding Perl in C -- access to builtins?
Re: Re: Embedding Perl in C -- access to builtins?
by premchai21 (Curate) on May 31, 2002 at 19:54 UTC

    That sounds like a good idea.

    $ ./reverse
    var is narf!
    Segmentation fault
    

    Eh?

    cat reverse.c

    #include <EXTERN.h> #include <perl.h> static PerlInterpreter *my_perl; static SV * do_reverse(x) SV *x; { dSP; int count; SV *var; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(sv_mortalcopy(x)); PUTBACK; count = perl_call_pv("CORE::reverse", G_SCALAR); SPAGAIN; if (count != 1) croak("Aieee!"); var = POPs; PUTBACK; FREETMPS; LEAVE; } main (int argc, char **argv, char **env) { STRLEN len; SV *var; my_perl = perl_alloc(); perl_construct(my_perl); var = newSVpvf("%s", "narf!"); printf("var is %s\n", SvPV(var, len)); var = do_reverse(sv_2mortal(var)); printf("var is %s\n", SvPV(var, len)); perl_destruct(my_perl); perl_free(my_perl); }

    According to gdb, it's segfaulting on the perl_call_pv. What am I doing wrong?

    (Running perl, v5.6.1, built for i686-linux-multi.)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2014-07-31 02:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (244 votes), past polls