Recipe 15.3 Clearing the Screen

15.3.1 Problem

You want to clear the screen.

15.3.2 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 any exceptions that 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");

15.3.3 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;

15.3.4 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 32 of Programming Perl; the documentation for the Term::Lib module from CPAN



Perl Cookbook
Perl Cookbook, Second Edition
ISBN: 0596003137
EAN: 2147483647
Year: 2003
Pages: 501

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net