(async => 1) オプションを使用して Openssh モジュールを使用してホストに接続しています。接続できないホストの接続エラーをトラップするにはどうすればよいですか。最終的にすべてのデータを cgi としてフォーマットしたいので、エラーを端末に表示するのではなく、データ構造に保存したいと考えています。スクリプトを実行すると、接続に問題があるホストがターミナルでエラーをスローします。コードはさらに実行され、切断されたホストでコマンドを実行しようとします。切断されたホストを分離したいと考えています。
my (%ssh, %ls); #Code copied from CPAN Net::OpenSSH
my @hosts = qw(host1 host2 host3 host4 );
# multiple connections are stablished in parallel:
for my $host (@hosts) {
$ssh{$host} = Net::OpenSSH->new($host, async => 1);
$ssh{$host}->error and die "no remote connection "; <--- doesn't work here! :-(
}
# then to run some command in all the hosts (sequentially):
for my $host (@hosts) {
$ssh{$host}->system('ls /');
}
$ssh{$host}-> エラーが発生し、「リモート接続が機能しません」と終了します。
どんな助けでも大歓迎です。ありがとう