Как мне скомпилировать 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.