$chan->exec("ls -l"); my $poll = { handle => $chan, events => -1 }; while ($ssh2->poll(500, [ $poll ])) { if ($poll->{revents}{out}) { while (<$chan>) { $r=$r.$_; } } if ($poll->{revents}{channel_closed} || $poll->{revents}{listener_closed}) { my $exit = $chan->exit_status(); print $r; } } print "timeout\n";