while (!$sock && $conn_tries < 2*@{$opts{servers}}) { debug("Connecting to $opts{servers}->[0]..."); my %sockinfo = (PeerAddr => $opts{servers}->[0], PeerPort => 6667); if ($opts{localaddr}) { $sockinfo{LocalAddr} = $opts{localaddr}; } $sock = IO::Socket::INET->new(%sockinfo) or debug("Error: failed to connect: $!\n"); ++$conn_tries; if (!$sock) { # cycle front server to back if connection failed push(@{$opts{servers}},shift(@{$opts{servers}})); } else { debug("Connected."); } } if (!$sock) { debug("Error: Too many connection failures, exhausted server list.\n",1); }