#include #include #include static PerlInterpreter *my_perl; void hello () { printf("Hello, world!\n"); } XS(XS_main_hello) { dXSARGS; if (items != 0) croak_xs_usage(cv, ""); hello(); XSRETURN_EMPTY; } int main (int argc, char **argv, char **env) { static const char file[] = __FILE__; PERL_SYS_INIT3(&argc, &argv, &env); my_perl = perl_alloc(); perl_construct(my_perl); PL_exit_flags |= PERL_EXIT_DESTRUCT_END; perl_parse(my_perl, NULL, argc, argv, (char **)NULL); newXS("main::hello", XS_main_hello, file); perl_run(my_perl); perl_destruct(my_perl); perl_free(my_perl); PERL_SYS_TERM(); return 0; }