0

私の 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);
}
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

UNIX システムでは 0..255 が許容されます。Windows では 0..65535。

于 2013-01-29T13:15:05.560 に答える
0

次の理由で、exit値を0..127に制限することもできます。プログラム(Unix上)がシグナルNによって強制終了された場合、exit値はN+128に設定されます。したがって、より高い出口値を使用する場合、「通常の」出口とシグナルによって強制された出口を区別することはできません。

于 2013-01-30T13:52:37.547 に答える