use strict; use IO::Socket; my $client; foreach(1..10){ print call_server(),"\n"; sleep 10; # allow sometime to test server restart } sub call_server{ my $answer; eval{ print $client "some_command\n"; $answer = <$client>; }; if($@){ $client = new IO::Socket::INET(PeerAddr => 'localhost', PeerPort => 16666, Proto => 'tcp', Type => SOCK_STREAM) or die "Couldn't connect to + server: $!"; # try again print $client "some_command\n"; $answer = <$client>; } return $answer; }