Perl スクリプトを、外部プロセスを起動せずに C/C++ で書かれたプログラムから実行するための覚書。Windows 版 ActivePerl の場合、オンラインドキュメントの perlembed
のページにサンプルコード付きで詳細な説明がある。VC++ などで /Perl/lib/CORE をインクルードディレクトリとライブラリディレクトリに追加するだけで簡単に実現できる。
#include <EXTERN.h> /* from the Perl distribution */ #include <perl.h> /* from the Perl distribution */ #pragma comment(lib, "perl56.lib") static PerlInterpreter *my_perl; /*** The Perl interpreter ***/ void main () { char *perl[] = { "", "-e", "printf("%x", 3735928559);" }; my_perl = perl_alloc (); perl_construct (my_perl); perl_parse (my_perl, NULL, 3, perl, (char **)NULL); perl_run (my_perl); perl_destruct (my_perl); perl_free (my_perl); }