2010-11-25 63 views
1

我想知道是否有任何方法可以自動與Perl 5代碼進行交互,而無需創建顯式的API並通過某種協議發佈它。我不想限制這個問題的任何具體方式實現 - 我正在尋找任何想法。與Perl代碼自動交互

Ruby可以通過JRuby從基於JVM的語言訪問;本地編譯的語言通常可以通過該平臺的本地共享庫/標準調用約定訪問;其他人可以從代碼中自動生成接口... Perl有哪些選項?

+0

@Virator:我完全不知道這意味着什麼。你的第一段沒有映射到我腦中的任何已知的插槽,第二段幾乎同樣神祕。你在談論XS的東西還是什麼? – tchrist 2010-11-25 00:44:51

+0

@tchrist:我想從某種其他語言訪問一些傳統的Perl代碼(我並不真正想要觸及)。希望逐步淘汰Perl部分。我正在尋找方法來做到這一點。 – viraptor 2010-11-25 01:03:41

+1

老實說,把舊的Perl代碼,並通過編寫一些小的包裝器(從傳統的管道數據傳遞到某些套接字通信...)聽起來對我來說聽起來比嘗試合併Perl和非Perl更容易原生代碼。 YMMV :) – DVK 2010-11-25 02:25:05

回答

4

作爲一個選項,您可以嵌入一個Perl解釋器,如圖hereherehere

4

有庫中嵌入Perl到您的程序(見perlembed.pod)被自動編譯 - 任何語言可以使用Python的pyperl,PHP的PEAR「Perl」擴展,幾次嘗試使用Perl 6中的Perl 5,幾次嘗試從JVM(全部未完成)運行Perl,Perl.NET。

另外你也可以用其他方式,用Perl中的其他語言嵌入程序,只需從其他語言的程序中調用Perl subs。主要的Perl程序只包含用其他語言調用你的程序。有大量的CPAN模塊集成其他語言。