2008-11-04 8 views
6

Ich habe ein C-Programm mit einem eingebetteten Perl-Interpreter. Ich möchte etwas Perl-Code aus dem Programm vorkompilieren können. Wie mache ich das?Wie kompiliere ich Perl-Code innerhalb eines C-Programms?

Begründung (falls jemand daran interessiert ist) ist in der Lage, es einmal zu kompilieren, den Syntaxbaum zu speichern und viele Male auszuführen (solange sich der kompilierte Code nicht ändert).

Danke! Madhu

PS: Ich benutze Perl-5.8, obwohl es gut wäre zu wissen, ob Perl-6.0 dies in irgendeiner Weise einfacher macht.

+0

Wenn Sie Ihren Grundgedanken haben, verschachteln Sie Perl, nur um den Syntaxbaum zu speichern und so die Startzeit zu verringern? Oder macht das C-Programm etwas anderes? Wenn es nur für die Startzeit ist, gibt es andere Möglichkeiten, dies zu tun. – Schwern

Antwort

11

Dies ist das Standardverhalten, wenn Sie embed the Perl interpreter in a C program. Nachdem Sie perl_parse() ausgeführt haben, um das Perl-Programm zu analysieren, können Sie perl_run() und call_argv() immer wieder mit dem gleichen geparsten Perl-Programm verwenden.

0

In Bezug auf Perl 6 ist es nicht abgeschlossen. Aber 5.10.0 könnte einige Bugfixes über 5.8 haben.

2

Sie können perlcc verwenden, um ausführbare oder C-Quellen zu erstellen.

Um Ihren C-Code zu kompilieren, müssten Sie die Perl-Bibliothek verwenden (könnte -lperl oder -llibperl sein).

+0

Wenn alles, was Sie wollen, eine ausführbare Binärdatei ist, verwenden Sie PAR, um das zu tun. http://search.cpan.org/perldoc?pp – Schwern