c代碼interp.c函數
#include <EXTERN.h> #include <perl.h> static PerlInterpreter *my_perl; int main(int argc, char **argv, char **env) { char *args[] = { NULL }; PERL_SYS_INIT3(&argc,&argv,&env); my_perl = perl_alloc(); perl_construct(my_perl); perl_parse(my_perl, NULL, argc, argv, NULL); PL_exit_flags |= PERL_EXIT_DESTRUCT_END; call_argv("Hello", G_DISCARD | G_NOARGS, args); perl_destruct(my_perl); perl_free(my_perl); PERL_SYS_TERM(); }
編譯code
gcc -o interp interp.c `perl -MExtUtils::Embed -e ccopts -e ldopts`
perl代碼hello.plit
#!/usr/bin/perl # 函數定義 sub Hello{ print "Hello, World!\n"; } # 函數調用 Hello();
運行編譯
$ ./interp hello.pl Hello, World!