Linux

perl 相當於 sh -e

  • June 20, 2015

/bin/sh/bin/bash(我猜還有很多其他 shell)中,使用#!/bin/sh -e(或set -e在腳本中的某個位置執行)啟動腳本會導致腳本中止,當腳本中的任何命令行以不同於 0 的狀態碼退出時。

是否有任何等效或解決方法可以在 perl 腳本中獲得相同的行為?(即,如果任何指令產生錯誤,或者任何使用system(...)或反引號執行的外部命令返回錯誤程式碼,則立即退出)

查看autodie核心模組。這用在失敗時死掉的函式替換了類似open和的呼叫。fork要使其與 一起使用system,您需要導入:allor :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

引用自:https://serverfault.com/questions/365350