如何从Python使用Perl模块?

6 投票
4 回答
4697 浏览
提问于 2025-04-16 05:57

有一个Perl模块,功能正好适合我的Python应用程序。请问我有什么办法可以使用它吗?(这很复杂,我可能需要一个月的时间才能把它移植过来)

我不想每次使用都要启动一个新的子进程,因为我需要用到它几十万次(它是一个特定类型的数据解析器)。

谢谢你的建议。

编辑:问了一下这个模块。它是Mail::DeliveryStatus::BounceParser。这个模块可以把邮件送达状态通知和一系列可能表示邮件退回的字符串进行匹配。(它会通过一堆正则表达式以及其他测试来处理DSN的内容和头部。真的是一个非常棒的模块。)

4 个回答

2

我会使用类似 HTTP::Server::Simple 这样的工具来创建一个本地的网络服务。然后你只需要对这个服务进行查询就可以了。虽然这还是一个外部的进程,但只有一个。

4

我知道你可以在Perl中使用Python,方法是用Inline::Python这个工具,但这并不是你真正想问的问题。也许在Python中有类似的功能。比如说,有没有像perlmodule这样的东西呢?

5

我不确定这个项目现在是否还在活跃,但PyPerl可能会对你有帮助。

不过,Python中应该支持大多数数据解析器。如果你能告诉我你正在关注哪个解析器,那就更好了。

另外,你也可以用那个Perl模块创建一个完整的流程,然后通过IPC(进程间通信)或套接字机制,把数据和结果在Python和Perl之间来回传递。

撰写回答