Как скомпилировать Perl-код в программе на языке Си?


У меня есть программа на языке Си со встроенным интерпретатором Perl. Я хочу иметь возможность предварительно скомпилировать некоторый Perl-код из программы. Как мне это сделать?

Логическое обоснование (если кто-то заинтересован) состоит в том, чтобы иметь возможность скомпилировать его один раз, сохранить дерево синтаксического анализа и выполнить много раз (до тех пор, пока скомпилированный код не изменится).

Спасибо! Мадху

PS: я использую Perl-5.8, хотя было бы неплохо узнать, делает ли Perl-6.0 это проще в любом случае.

3 6

3 ответа:

Это поведение по умолчанию, когда вывнедряете интерпретатор Perl в программу на языке Си . После того как вы запустите perl_parse() для разбора программы на Perl, вы можете использовать perl_run() и call_argv() снова и снова с той же анализируемой программы на Perl.

Вы можете использоватьperlcc для создания исполняемых файлов или C-источников.

Чтобы скомпилировать код C, вам нужно будет использовать библиотеку perl (может быть -lperl или -llibperl).

В отношении Perl 6 он не является полным. Но в 5.10.0 могут быть исправлены некоторые ошибки по сравнению с 5.8.