9

我有一个调用另一个脚本的 perl 脚本。我使用反引号调用它并将参数传递给该脚本,它工作正常。

`CQPerl call_script.pl $agr1 $agr2 $arg3`;

但请建议是否有另一种更好的方法。如何检查脚本是否由于调用脚本或被调用的脚本而出错。如何从调用脚本本身进行检查?

4

2 回答 2

23

如果您不想进行错误检查,反引号可能是一种错误的方法。您可能想使用该system功能。有关错误处理的所有详细信息,请参阅文档,包括示例。

Perl 有许多可能执行其他脚本/命令:

  • 反引号/qx{}当您想在程序终止后一次读取所有输出时
  • exec当你不想作为另一个程序继续你的过程时——如果成功就永远不会返回
  • system当您只对命令的成功或失败感兴趣时
  • open当您想通过管道将信息传入或传出命令时
  • dorequire在此处执行另一个 Perl 脚本。类似于 C 的#include
  • 有一些模块可以进行三向操作,以便open您可以访问和执行您执行的程序。有关高级信息,请参阅perlipc的相应部分。STDINSTDOUTSTDERR

并且始终使用这些调用的多参数形式来避免 shell 转义(可能很烦人并且非常不安全)。

于 2012-08-21T00:16:45.733 回答
5

检查 perl 特殊变量的值$?以确定是否有错误。

于 2012-08-21T00:10:44.093 回答