我有一个调用另一个脚本的perl脚本。我用反引号调用它并将参数传递给该脚本,它工作正常。
`CQPerl call_script.pl $agr1 $agr2 $arg3`;
但请建议是否还有其他更好的方法。如何检查脚本是否因为调用脚本或调用的脚本而出错。如何从调用脚本本身进行检查?
答案 0 :(得分:19)
如果您不想进行错误检查,反引号可能是错误的方法。您可能想要使用system
函数。有关错误处理的所有详细信息,请参阅documentation,其中包含示例。
Perl有许多可能来执行其他脚本/命令:
qx{}
如果您希望在程序终止后立即读取所有输出exec
当您不想继续您的流程作为另一个程序时 - 如果成功则永远不会返回system
当您只对命令的成功或失败感兴趣时open
如果要将信息传递给命令或从命令传出信息do
和require
在此处执行另一个Perl脚本。与C的#include
open
模块可以访问您执行的程序的STDIN
,STDOUT
和STDERR
。有关高级信息,请参阅perlipc的适当部分。并且始终使用这些调用的多参数形式来避免shell转义(可能很烦人且非常不安全)。
答案 1 :(得分:5)
检查perl特殊变量$?
的值以确定是否存在错误。