Dans mon script Perl, si j’utilise exit(-1)
, le script se ferme. Mais si j’utilise exit(-433)
ou exit(-233)
, il ne sort pas. Pourquoi? Un exemple suit.
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); }
Exécutez perlbug
pour soumettre un rapport de bogue. Malgré votre argument incorrect, cela ne devrait pas empêcher la exit
du fonctionnement.
Comme vous pouvez le voir (par le visage que y
n’est jamais imprimé), je ne peux pas reproduire cela sur un système 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 sont acceptables sur les systèmes Unix. 0..65535 sous Windows.
Je restreindrais même la valeur de sortie à 0..127, pour la raison suivante: Si votre programme (sur Unix) est tué par le signal N, la valeur de sortie est définie sur N + 128. Par conséquent, si vous utilisez des valeurs de sortie plus élevées, vous ne pouvez pas distinguer une sortie “normale” d’une sortie forcée par un signal.