从java调用Perl,主要用于正则表达式匹配

han*_*nsi 1 java regex perl

我想从Java有效地执行Perl代码.Perl的目的主要是执行正则表达式匹配(在某些测试中,Perl比Java更有效)

到目前为止,我已经发现了使用它的可能性:http://metacpan.org/pod/Inline :: Java :: PerlInterpreter

另一种选择是在java中使用Runtime.exec()来调用Perl.

什么是最高效的解决方案?一个人比另一个人有优势吗?我真的不能看到任何,除了PerlInterpreter仍处于试验阶段,我不知道这是否将改变.你知道从Java调用Perl的其他选项吗?

Vik*_*dor 7

你为什么不喜欢java.util.regex.Patternjava.util.regex.Matcher想要使用Perl的正则表达式功能的课程?;-)

  • 这是一个反驳,最好作为评论发布. (2认同)

Tre*_*man 5

它必须是一个非常特殊的情况,从Java执行Perl处理正则表达式会产生更好的性能.无论Perl是否能够比Java更快地处理单个正则表达式,从Java启动Perl以及Java中的线程开销来正确管理分叉进程都会产生开销.

最有可能的是,通过直接在Java中处理正则表达式,您将获得更好的性能,除非您有非常大的数据要查询,这可能有助于降低调用单独进程的启动成本.

推荐步骤:

  • 首先用Java实现您的解决方案.
  • 如果Java解决方案对您的需求来说太慢,并且正则表达式部分是瓶颈,那么请探索其他选项.
  • 要执行Perl,Runtime.exec或Process可以正常工作,只需确保运行必要的线程来排空STDOUT和STDERR.