0

在我的 Perl 脚本中,如果我使用exit(-1),脚本将退出。但如果我使用exit(-433)or exit(-233),它不会退出。为什么?下面是一个例子。

if ($result1[0] eq "Error") {
    print "Error occurred while updating https route\n";
    print "Error returned from the script:\n";
    print $result1[1];
    exit(-377);
}
4

2 回答 2

3

运行perlbug以提交错误报告。尽管您的论点不正确,但这不应阻止其exit发挥作用。

正如你所看到的(通过y从未打印的面孔),我无法在 Linux 系统上复制它:

$ perl -E'say "x"; exit($ARGV[0]); say "y";' -- -377 ; echo $?
x
135

$ perl -E'say "x"; exit($ARGV[0]); say "y";' -- -1 ; echo $?
x
255

$ perl -E'say "x"; exit($ARGV[0]); say "y";' -- -433 ; echo $?
x
79

$ perl -E'say "x"; exit($ARGV[0]); say "y";' -- -233 ; echo $?
x
23

0..255 在 Unix 系统上是可以接受的。0..65535 在 Windows 上。

于 2013-01-29T13:15:05.560 回答
0

我什至会将退出值限制为 0..127,原因如下:如果您的程序(在 Unix 上)被信号 N 杀死,则退出值设置为 N+128。因此,如果您使用更高的退出值,您将无法区分“正常”退出和信号强制退出。

于 2013-01-30T13:52:37.547 回答