my $state = 1; ioctl( $handle, 0x8004667e, \$state ); my $end = time() + $timeout; while( time() < $end and $buffer !~ m[\n] ) { my $read = sysread( $handle, $buffer, 100, length( $buffer ) ); sleep 1; } $state = 0; ioctl( $handle, 0x8004667e, \$state ); #### my $sel = IO::Select->new($handle); my $end = time() + $timeout; while( $buffer !~ m[\n] ) { my $left = $end - time(); last if $left <= 0; last if !$sel->can_read($left); my $read = sysread( $handle, $buffer, 100, length( $buffer ) ); }