Provided by: libio-bufferedselect-perl_1.0-3_all 

NAME
IO::BufferedSelect - Line-buffered select interface
SYNOPSIS
use IO::BufferedSelect;
my $bs = new BufferedSelect($fh1, $fh2);
while(1)
{
my @ready = $bs->read_line();
foreach(@ready)
{
my ($fh, $line) = @$_;
my $fh_name = ($fh == $fh1 ? "fh1" : "fh2");
print "$fh_name: $line";
}
}
DESCRIPTION
The "select" system call (and the "IO::Select" interface) allows us to process multiple streams
simultaneously, blocking until one or more of them is ready for reading or writing. Unfortunately, this
requires us to use "sysread" and "syswrite" rather than Perl's buffered I/O functions. In the case of
reading, there are two issues with combining "select" with "readline": (1) "select" might block but the
data we want is already in Perl's input buffer, ready to be slurped in by "readline"; and (2) "select"
might indicate that data is available, but "readline" will block because there isn't a full $/-terminated
line available.
The purpose of this module is to implement a buffered version of the "select" interface that operates on
lines, rather than characters. Given a set of filehandles, it will block until a full line is available
on one or more of them.
Note that this module is currently limited, in that (1) it only does "select" for readability, not
writability or exceptions; and (2) it does not support arbitrary line separators ($/): lines must be
delimited by newlines.
CONSTRUCTOR
new ( HANDLES )
Create a "BufferedSelect" object for a set of filehandles. Note that because this class buffers
input from these filehandles internally, you should only use the "BufferedSelect" object for reading
from them (you shouldn't read from them directly or pass them to other BufferedSelect instances).
METHODS
read_line
read_line ($timeout)
read_line ($timeout, @handles)
Block until a line is available on one of the filehandles. If $timeout is "undef", it blocks
indefinitely; otherwise, it returns after at most $timeout seconds.
If @handles is specified, then only these filehandles will be considered; otherwise, it will use all
filehandles passed to the constructor.
Returns a list of pairs "[$fh, $line]", where $fh is a filehandle and $line is the line that was read
(including the newline, ala "readline"). If the filehandle reached EOF, then $line will be undef.
Note that "reached EOF" is to be interpreted in the buffered sense: if a filehandle is at EOF but
there are newline-terminated lines in "BufferedSelect"'s buffer, "read_line" will continue to return
lines until the buffer is empty.
SEE ALSO
IO::Select
AUTHOR
Antal Novak, <afn@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2007 by Antal Novak
This library is free software; you can redistribute it and/or modify it under the same terms as Perl
itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
perl v5.36.0 2022-11-20 IO::BufferedSelect(3pm)