Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Perl调用Node.js(或python)_Python_Node.js_Perl - Fatal编程技术网

从Perl调用Node.js(或python)

从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编写的遗留系统,我想开始从它迁移到更现代的东西。Python是我个人的偏好,但是团队非常面向JS


我想将各种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编写某种类型的客户机,但这似乎是问题最少的方法。所有这些内联的东西都很适合玩,但我不太确定我是否愿意在生产中使用它们。