从Perl调用Node.js(或python)
我有一个用Perl编写的遗留系统,我想开始从它迁移到更现代的东西。Python是我个人的偏好,但是团队非常面向JS从Perl调用Node.js(或python),python,node.js,perl,Python,Node.js,Perl,我有一个用Perl编写的遗留系统,我想开始从它迁移到更现代的东西。Python是我个人的偏好,但是团队非常面向JS 我想将各种perl模块迁移到node或python,作为过程的第一步。之前的研究包括谷歌搜索(所有结果都是相反的)和堆栈溢出(没有任何相关)。我知道,但想知道是否有更结构化的JNI,或者是否有人有其他更优雅的解决方案。对于Python,我建议使用CPAN的内联Python模块: 例如: use Inline Python => <<END; def
我想将各种perl模块迁移到node或python,作为过程的第一步。之前的研究包括谷歌搜索(所有结果都是相反的)和堆栈溢出(没有任何相关)。我知道,但想知道是否有更结构化的JNI,或者是否有人有其他更优雅的解决方案。对于Python,我建议使用CPAN的内联Python模块: 例如:
use Inline Python => <<END;
def Foo():
class Bar:
def __init__(self):
print "new Bar()"
def tank(self):
return 10
return Bar()
END
my $o = Foo();
print $o->tank(), "\n";
使用内联Python=>作为Perl程序的一部分,您可以在Perl内部运行Python和JavaScript。这可能不是最快的,但可能有效。否则,您将需要定义清晰的接口,并使不同的程序相互通信。然而,这对于堆栈溢出来说有点宽泛。如果你把问题改写成“我能用什么策略把一个应用程序从语言1移植到语言2,同时保持它在生产中”,然后再详细介绍,你可能会得到一个很好的回答。我承认我对“现代”的判断是非常主观的。Perl在几年前就不受欢迎了,我发现它非常“初学者不友好”。我也不喜欢缺少功能原型。大多数情况下,今天的人们不使用它,因此新的团队成员必须学习它或被招募(这比python/node更难)。Perl现在有了我认为你的意思。如果是这样的话,也许最好完全删除该部分,用一种团队会觉得更舒服的技术重新实现它,然后通过API将其插入。在最后一部分中,您当然需要用Perl为该API编写某种类型的客户机,但这似乎是问题最少的方法。所有这些内联的东西都很适合玩,但我不太确定我是否愿意在生产中使用它们。