my $input = ''; sub readSocket($socket) { my $retval = ''; while(1) { my $buf; my $readok = 0; eval { sysread($socket, $buf, 1); # Read one byte $readok = 1; }; if(!$readok) { croak("Socket error"); } last if(!defined($buf) || $buf eq ''); if($buf eq "\n") { $retval = '' . $input; $input = ''; last; } $input .= $buf; } return $retval; }