Recipe 15.3. Clearing the Screen
Author: Tom Christiansen & Nathan Torkington
Date: 1999-07-02T01:43:16Z

#

| Chapter 15 User Interfaces |

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

15.2. Testing Whether a Program Is Running Interactively |  | 15.4. Determining Terminal or Window Size