Clearing the Screen
Problem
You want to clear the screen.
Solution
Use the Term::Cap module to send the appropriate character sequence.
Use POSIX Termios to get the output speed of the terminal (or guess
9600 bps). Use eval
to trap errors that may arise
using POSIX Termios::
use Term::Cap; $OSPEED = 9600; eval { require POSIX; my $termios = POSIX::Termios->new(); $termios->getattr; $OSPEED = $termios->getospeed; }; $terminal = Term::Cap->Tgetent({OSPEED=>$OSPEED}); $terminal->Tputs('cl', 1, STDOUT);
Or, just run the clear command:
system("clear");
Discussion
If you clear the screen a lot, cache the return value from the termcap or clear command:
$clear = $terminal->Tputs('cl'); $clear = `clear`;
Then you can clear the screen a hundred times without running clear a hundred times:
print $clear;
See Also
Your system’s clear
(1) and
termcap
(5) manpages (if you have them); the
documentation for the standard module Term::Cap module, also in
Chapter 7 of Programming Perl; the
documentation for the Term::Lib module from CPAN
Get Perl Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.