在我的Perl脚本中,如果我使用exit(-1)
,脚本将退出。但是如果我使用exit(-433)
或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);
}
答案 0 :(得分: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
在Unix系统上可以接受0..255。 Windows上为0..65535。
答案 1 :(得分:0)
我甚至会将退出值限制为0..127,原因如下:如果您的程序(在Unix上)被信号N杀死,则退出值设置为N + 128。因此,如果使用更高的退出值,则无法区分“正常”退出与信号强制退出的退出。