The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/opt/perl/bin/perl
use IO::Socket::INET;
use AnyEvent::Socket;
use AnyEvent::Handle;

my $cv = AnyEvent->condvar;

my $hdl;

my $watchobj = AnyEvent::Socket::tcp_connect ("www.google.com", 80, sub {
   my ($sock) = @_;

   unless ($sock) {
      warn "couldn't connect: $!";
      return;
   }

   $hdl =
      AnyEvent::Handle->new (
         fh => $sock,
         on_eof => sub { print "received eof\n"; undef $hdl }
      );

   $hdl->push_write ("GET / HTTP/1.0\015\012\015\012");

   $hdl->push_read (line => sub {
      my ($hdl, $line) = @_;
      print "Yay, got line: $line\n";
      $cv->broadcast;
   });

}, sub {
   10 # the timeout
});

$cv->wait;