使用系统 VS 实现包调用 perl 脚本

calling perl script with system VS implementing package

首先让我举一个我正在处理的例子:

我经常调用以前工程师的现有 Perl 脚本来处理一些数据,然后进一步处理我的脚本。我使用 systemback-ticks 在我的脚本中调用其他人的脚本。

现在,我想知道如果我将这些脚本重写为包并使用 requireuse 将这些包包含在我的脚本中,它会提高处理速度吗?会有多大的不同?

好处:

  • 这将节省加载 shell、加载 perl、编译脚本及其使用的模块所花费的时间。这是几秒钟最小值,但可能会更长。
  • 如果您必须序列化数据以传递给 child,您还可以节省序列化和反序列化数据所花费的时间。
  • 它将允许更灵活的接口。
  • 这将使错误处理更容易和更灵活。

缺点:

  • 由于现在一切都在同一个过程中,child 对 parent 的影响可能会大得多。例如child 中的崩溃将摧毁 parent。