在Perl脚本中处理Unix命令执行

在Perl脚本中处理Unix命令执行,perl,Perl,我正在创建一个Perl脚本,其中使用isql命令连接到informix数据库。有时,当查询中出现问题时,命令会被挂起,因为脚本没有抛出任何错误或退出。 我正在使用以下命令连接informix db: `isql db <<EOF unload to data DELIMITER ',' select* from tablename EOF`; `isqldb这里最好的答案是停止正在做的事情并安装。我知道你认为这是一个不可逾越的障碍,但现代Perl编程的大部分工作都是通过管道将有用的

我正在创建一个Perl脚本,其中使用isql命令连接到informix数据库。有时,当查询中出现问题时,命令会被挂起,因为脚本没有抛出任何错误或退出。 我正在使用以下命令连接informix db:

`isql db <<EOF
unload to data DELIMITER ','
select* from tablename
EOF`;

`isqldb这里最好的答案是停止正在做的事情并安装。我知道你认为这是一个不可逾越的障碍,但现代Perl编程的大部分工作都是通过管道将有用的CPAN模块连接在一起,因此你需要能够随时从CPAN安装东西。无论你需要做什么来打破僵局,从长远来看都是值得的


您可以通过查看其中一个Perl函数中的值来做您想做的事情。我想您可能需要
$?
。但请注意,您需要
$?>>8
获取实际退出代码。

这里的最佳答案是停止正在执行的操作并安装。我知道你认为这是一个不可逾越的障碍,但现代Perl编程的大部分工作都是通过管道将有用的CPAN模块连接在一起,因此你需要能够随时从CPAN安装东西。无论你需要做什么来打破僵局,从长远来看都是值得的


您可以通过查看其中一个Perl函数中的值来做您想做的事情。我想您可能需要
$?
。但请注意,您需要
$?>>8
获取实际的退出代码。

您考虑过将DBI与一起使用吗?我不能使用它,因为我的服务器没有informix驱动程序,而且由于某些限制,我们也无法安装它。是否希望在stderr上引发错误?或者命令的退出代码?命令的退出代码您考虑过将DBI与一起使用吗?我不能使用它,因为我的服务器没有informix驱动程序,而且由于某些限制,我们也无法安装它。是否希望在stderr上引发错误?或命令的退出代码?命令的退出代码