#! perl -w use strict; use IO::Socket; use IO::Socket::SSL; use IO::Select; my $timeout = 3; my $socket = IO::Socket::SSL->new( Proto => "tcp", Type => SOCK_STREAM); ioctl($socket, 0x8004667e, pack("I", 1)); # Good HTTPS server response with comment this, but timeout not work. my $inetaddr = inet_aton("some_ssl_host"); my $peeraddr = sockaddr_in(443, $inetaddr); $socket->connect($peeraddr); $socket->autoflush; my $select = new IO::Select($socket); if($select->can_write($timeout)) { my $req = "GET /index.php HTTP/1.0\n\n"; print $socket $req; print <$socket>; # Got "400 Bad Request" from HTTPS server. } else { print "Connect timeout.\n"; } close $socket; exit;