Perl:从另一个调用perl脚本

时间:2012-08-21 00:02:14

标签: perl

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

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

但请建议是否还有其他更好的方法。如何检查脚本是否因为调用脚本或调用的脚本而出错。如何从调用脚本本身进行检查?

2 个答案:

答案 0 :(得分:19)

如果您不想进行错误检查,反引号可能是错误的方法。您可能想要使用system函数。有关错误处理的所有详细信息,请参阅documentation,其中包含示例。

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

  • 反对/ qx{} 如果您希望在程序终止后立即读取所有输出
  • exec 当您不想继续您的流程作为另一个程序时 - 如果成功则永远不会返回
  • system 当您只对命令的成功或失败感兴趣时
  • open 如果要将信息传递给命令或从命令传出信息
  • dorequire 在此处执行另一个Perl脚本。与C的#include
  • 类似
  • 有三个open模块可以访问您执行的程序的STDINSTDOUTSTDERR。有关高级信息,请参阅perlipc的适当部分。

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

答案 1 :(得分:5)

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