UNIX コマンドの戻り値を perl 変数に入れるのに問題があります。
Unix コマンド:
#nc -z 8.8.8.8 441; echo $?
1
Perl コマンド:
#perl -e 'my $pstate=`nc -z 8.8.8.8 441; echo $?`; print $pstate;'
0
それで、perl コマンドは「エラーなし」の戻り値を取得するように見えますか? *nix コマンドの戻り値を正しく取得するにはどうすればよいですか?
別の例:
#perl -e 'my $pstate=`ping -v 8.8.8.8 -c 1`; print $pstate;'
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
これにより、適切な値が返されます。では、最初のインスタンスで何が間違っているのでしょうか?