Clearing the Screen (Perl Cookbook, 2nd Edition)

## 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

Copyright © 2003 O'Reilly & Associates. All rights reserved.