NAME
Term::Scroller::Linefeed - Utility function for Term::Scroller, used to read lines from a pseudoterminal, allowing for non-terminated lines.
SYNOPSIS
use IO::Pty;
use Term::Scroller::Linefeed qw(linefeed);
my $pty = IO::Pty->new();
# (Set up something to write to the $pty however you like)
while( my $line = linefeed($pty) ) {
if ($line =~ /\n$/) {
print "Pty printed a complete line"
}
else {
print "Pty printed a partial line"
}
}
DESCRIPTION
This module exports the linefeed
function which takes an IO::Pty instance and returns the next line of text from read from the slave. The key difference between this (as opposed to simply '<$pty->slave>') is that it will not wait for a newline character at the end of input. So if a sequence of text not ending in a newline is written to the pty master, then it will be available immediately as a "line" returned by this function.
NOTE: This stores an internal buffer of lines alongside the IO::Pty instance, adding an arrayref 'term_scroller_linefeed' in the Pty's typeglob.