perl 中与 sh -e 等效的

perl 中与 sh -e 等效的

/bin/sh/bin/bash(我猜还有很多其他的 shell)中,用启动脚本#!/bin/sh -e(或set -e在脚本中的某个位置执行)会导致脚本中止,当脚本内的任何命令行以不同于 0 的状态代码退出时。

在 perl 脚本中是否有任何等效或解决方法来获得相同的行为?(即,如果任何指令生成错误,或者任何使用system(...)或反引号执行的外部命令返回错误代码,则立即退出)

答案1

看着那(这自动模具核心模块。这将用失败时终止的函数替换像openfork这样的调用。要使其与 一起工作system,您需要导入:all:system,因为默认情况下不会这样做。

use strict;   #always!
use warnings; #always!
use autodie qw(:system);

system('/bin/false'); #This will die
print "This will never be printed\n";

需要注意的是,要autodie使用system,您需要该IPC::System::Simple模块。使用 CPAN 安装它,或者在 Ubuntu 上也可以sudo apt-get install libipc-system-simple-perl

相关内容