Skip to content

Instantly share code, notes, and snippets.

@yko
Created December 5, 2014 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yko/fe34777d6ff882827740 to your computer and use it in GitHub Desktop.
Save yko/fe34777d6ff882827740 to your computer and use it in GitHub Desktop.
#include <string.h>
#include <EXTERN.h>
#include <perl.h>
extern char **environ;
static PerlInterpreter *my_perl;
int main (int argc, char **argv) {
char *embedding[] = { "", "-e", "0" };
PERL_SYS_INIT3(&argc,&argv,&environ);
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, NULL, 3, embedding, environ);
perl_run(my_perl);
GV *gv;
gv = (GV*)SvREFCNT_inc(newGVgen("Test"));
// Gv '*Test::_GEN_0'
printf("Gv '%s'\n", SvPV_nolen((SV*)gv));
perl_destruct(my_perl);
perl_free(my_perl);
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, NULL, 3, embedding, environ);
perl_run(my_perl);
gv = (GV*)SvREFCNT_inc(newGVgen("Test"));
// Gv '*Test::_GEN_1'
printf("Gv '%s'\n", SvPV_nolen((SV*)gv));
perl_destruct(my_perl);
perl_free(my_perl);
PERL_SYS_TERM();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment