次の Perl スクリプトのスニペットを考えてみましょう。
use IO::Socket;
# ...
my $sock = IO::Socket::INET->new(
PeerAddr => $host, # e.g. "google.com"
PeerPort => $port, # e.g. 80
Proto => 'tcp'
);
die("no socket: $!") unless $sock;
# ...
通常の状態ではすべてが期待どおりに機能しますが、ホスト システムのインターネット接続が非アクティブになると、「sock」変数が空になり$!
、「無効な引数」というメッセージが表示されます。
INET コンストラクターを不適切に使用していますか、それともこれは予期された動作ですか? 後者の場合、「ネットワーク インターフェイスが非アクティブ」エラーとコンストラクタ メソッドへの真の無効な引数を区別する方法はありますか?