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

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

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

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

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

3 ответа

Решение

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

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

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

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

Другие вопросы по тегам