#!/usr/bin/perl exit system( "/bin/ping -w1 -c1 hoge" );
$ ./hoge $ echo $? 0
なんでもいいからエラー取得しようと思ったけどこれで戻り値が取得できなかった。
system()の戻り値の上位8ビットに system()内で起動したプログラムの戻り値が入っている。
exit()でシェルに返される戻り値は 呼び出し側では下位8ビットしか取得できない。
なので、8ビット右シフトしてから返す。
#!/usr/bin/perl exit system( "/bin/ping -w1 -c1 hoge" )>>8;
$ ./hoge $ echo $? 2