[REFS[
- [1] [CITE[perlfunc - search.cpan.org]] ([TIME[2015-02-26 18:54:36 +09:00]] 版) <http://search.cpan.org/dist/perl/pod/perlfunc.pod#system_LIST>
- [7] [CITE[perlvar - search.cpan.org]] ([TIME[2015-02-26 19:34:25 +09:00]] 版) <http://search.cpan.org/dist/perl/pod/perlvar.pod#Error_Variables>
- [8] [CITE[perlvar - search.cpan.org]] ([TIME[2015-02-26 19:34:25 +09:00]] 版) <http://search.cpan.org/dist/perl/pod/perlvar.pod#$?>
]REFS]

* 結果

[2] [[プログラム]]の開始に成功すると、 [CODE[[[0]]]] が返されます。

;; [3] 実行した[[プログラム]]の[[終了コード]]とは関係ありません。

[4] [[プログラム]]の開始に失敗したり、 [[wait(2)]]
で[[エラー]]が発生したりすると、 [CODE[[[-1]]]] が返されます [SRC[>>1]]。
[CODE[[[$!]]]] に理由が設定されます [SRC[>>1]]。
[CODE[[[$?]]]] は [[-1]] になるようです [SRC[>>1]]。

[5] [[プログラム]]の実行開始後、[[シグナル]]により終了した場合、
[CODE[[[$?]]]] の下位7ビットが[[シグナル]]に設定されます [SRC[>>1, >>8]]。
[CODE[[[$?]]]] の8ビット目が [[core dump]] の有無に設定されます [SRC[>>1, >>8]]。

[6] [[プログラム]]の実行開始後、正常に終了した場合、
終了コードが [CODE[[[$?]]]] の9ビット目以上に設定されます [SRC[>>1, >>7, >>8]]。

[FIG(packet)[
:width:16

= 7 [[シグナル]]
= 1 [[core dump]]
= 8 [[終了コード]]
]FIG]