NAME
Term::Output::List::Win32 - output an updateable list of ongoing jobs to a Win32 console
SYNOPSIS
my $printer = Term::Output::List->new(
hook_warnings => 1,
);
my @ongoing_tasks = ('file1: frobnicating', 'file2: bamboozling', 'file3: frobnicating');
$printer->output_list(@ongoing_tasks);
$printer->output_permanent("Frobnicated gizmos"); # appears above the list
MEMBERS
fh
Filehandle used for output. Default is STDOUT
.
interactive
Whether the script is run interactively and should output intermittent updateable information
hook_warnings
Install a hook for sending warnings to ->output_permanent
. This prevents ugly tearing/overwriting when your code outputs warnings.
METHODS
Term::Output::List::Win32->new()
my $output = Term::Output::List::Win32->new(
hook_warnings => 1,
)
hook_warnings
-
Install a hook for sending warnings to
->output_permanent
. This prevents ugly tearing/overwriting when your code outputs warnings.
width
Width of the terminal. This is initialized at first use. You may (or may not) want to set up a $SIG{WINCH}
handler to set the terminal width when the terminal size changes.
->scroll_up
Helper method to place the cursor at the top of the updateable list.
<-
output_permanent>>
$o->output_permanent("Frobnicated 3 items for job 2");
$o->output_list("Frobnicating 9 items for job 1",
"Frobnicating 2 items for job 3",
);
Outputs items that should go on the permanent record. It is expected to output the (remaining) list of ongoing jobs after that.
<-
output_list @items>>
$o->output_list("Frobnicating 9 items for job 1",
"Frobnicating 2 items for job 3",
);
Outputs items that can be updated later, as long as no intervening output (like from print
, say
or warn
) has happened. If you want to output lines that should not be overwritten later, see </-
output_permanent>>
<-
fresh_output >>
$o->fresh_output();
Helper subroutine to make all items from the last output list remain as is.
For compatibility between output to a terminal and output without a terminal, you should use ->output_permanent
for things that should be permanent instead.
->do_clear_eol
$o->do_clear_eol(10); # clear 10 lines from the cursor down
Helper method to clear lines on the terminal.