use 5.012; use warnings; use UniEvent; my $tcp = UniEvent::Tcp->new; $tcp->connect('yandex.ru', 80, sub { my ($tcp, $error_code) = @_; # will be thrown out of loop run die("cannot connect: $error_code\n") if $error_code; $tcp->loop->stop; }); $tcp->loop->run; say "connected"; $tcp->read_callback(sub { my ($tcp, $data, $error_code) = @_; die("reading data error: $error_code\n") if $error_code; say "[<<] ", $data; $tcp->loop->stop; }); $tcp->eof_callback(sub { say "[eof]"; $tcp->loop->stop; }); my $req =<write($req, sub { my ($client, $error_code) = @_; die("writing data error: $error_code\n") if $error_code; say "[>>] (simple get)"; }); $tcp->loop->run;