场景1: 我有一个包装器Perl脚本,它使用另一个Perl模块并在该模块中调用一个函数。
场景2:
现在我有相同的包装脚本,模块实现为Perl脚本。在这里,我只是简单地调用system("perl anotherscript.pl")
。
两者都做同样的功能,但我看到第二种情况有点延迟。
为什么会这样?它是预期的还是与我的代码有关?
答案 0 :(得分:10)
在第一种情况下,您有Perl解释器的开销。在第二个中,你有两个 Perl解释器的开销。如果您想要第二种方法,请考虑do
函数的备用和少用版本(请参阅perldoc -f do
):
do './anotherscript.pl'
如果Perl解释器设计得很好(可能是这样),这可能会比第二个例子快得多,尽管我不知道它与第一个例子相比如何。如果您想要效率,基准。
编辑:如果你不关心两者之间(可能微不足道)的性能差异,我建议你只使用使用模块。它将使您的代码更加有用,因为虽然脚本只能在一个部分中重复使用,但模块可以在任意多个单独的部分中重复使用。
答案 1 :(得分:2)
您可以通过创建modulinos来同时拥有模块和脚本。