NAME

Term::Size - Perl extension for retrieving terminal size

SYNOPSIS

    use Term::Size;

    ($columns, $rows) = Term::Size::chars;
    ($x, $y) = Term::Size::pixels

DESCRIPTION

Term::Size is a Perl module which provides a straightforward way to retrieve the terminal size.

The function Term::Size::chars returns a list of two values, which are the current width and height respectively of the terminal, in characters.

The function Term::Size::pixels returns a list of two values, which are the current width and height respectively of the terminal, in pixels.

In a scalar context, both functions return the first element of the list, that is, the terminal width.

The functions may be imported.

EXAMPLES

1. Refuse to run in a too narrow window.

    use Term::Size;

    die "Need 80 column screen" if Term::Size::chars < 80;

2. Track window size changes.

    use Term::Size 'chars';

    my $changed = 1;

    while (1) {
            local $SIG{'WINCH'} = sub { $changed = 1 };

            if ($changed) {
                    ($cols, $rows) = chars;
                    # Redraw, or whatever.
                    $changed = 0;
            }
    }

RETURN VALUES

Both functions return undef if there is an error.

If the terminal size information is not available, the functions will normally return (0, 0), but this depends on your system. On character only terminals, pixels will normally return (0, 0).

BUGS

It only works on Unix systems.

AUTHOR

Tim Goodwin, <tim@uunet.pipex.com>, 1997-04-23.