我编写了一堆Perl库(实际上是Perl类),我想在我的Python应用程序中使用它们中的一些。有没有一种自然的方法可以在不使用SWIG或为Python编写Perl API的情况下执行此操作。我要求PHP的Perl interface采用类似的方法。如果在Python中没有Perl这样的工作。在python中使用Perl类的最简单方法是什么?
答案 0 :(得分:8)
就个人而言,我会通过XML / RPC或其他一些此类机制将Perl库作为服务公开。这样,您就可以以非常自然的方式从Python应用程序中调用它们。
答案 1 :(得分:4)
我还没有尝试过,但是Inline::Python允许你从Perl调用Python。
你应该能够使用一小块perl来加载你的python应用程序,然后使用I :: P附带的perl
python包来访问你的Perl对象。
答案 2 :(得分:3)
“在python中使用Perl类的最简单方法是什么?”
最容易的。将Perl重写为Python并完成它。认真。只选择一种语言 - 这是最简单的。离开Perl并不是很大的损失。将类重写为Python可能会让您有机会以小的方式改进它们。
不那么容易。使用Python的subprocess模块运行Perl应用程序。它使用Perl应用程序中的Perl类没有问题。您可以轻松地创建管道,以便Perl从Python获取输入并生成输出到Python
someApp.py | something.pl | finalStep.py
这样做的好处是可以将应用程序分成三个并发进程,占用大量处理器资源并在1/3时间内运行(有时)。
其他一切都不那么容易了。
答案 3 :(得分:2)
您错过了让Python
与Perl一起运行{{1}}的机会。在 4月1日,2009 Parrot VM已发布,其中一个 FLUFL官方法案宣读:
- 认识到C是一种20世纪的语言,几乎被30岁以下的程序员拒绝,CPython的实现将随着Python 2.6.2和3.0.2的发布而终止。此后, Python的参考实现将针对Parrot虚拟机。 Python的替代实现(例如Jython,IronPython和PyPy)正式受到劝阻但容忍。
答案 4 :(得分:1)
查看PyPerl。
警告:PyPerl目前尚未维护,因此如果您需要稳定性,请不要使用它。