---
name: "Term::Size"
section: "3pm"
platform: "linux"
package: "libterm-size-perl"
version: "0.211-1+b5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Term::Size"
---

# Term::Size(3pm)

Retrieve terminal size on Unix

## NAME

Term::Size - Retrieve terminal size on Unix

## SYNOPSIS

```
    use Term::Size;
    ($columns, $rows) = Term::Size::chars *STDOUT{IO};
    ($x, $y) = Term::Size::pixels;
```

## DESCRIPTION

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

Both functions take an optional filehandle argument, which defaults to `*STDIN{IO}`.  They both return a list of two values, which are the current width and height, respectively, of the terminal associated with the specified filehandle.

`"Term::Size::chars"` returns the size in units of characters, whereas `"Term::Size::pixels"` uses units of pixels.

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

The functions may be imported.

If you need to pass a filehandle to either of the Term::Size functions, beware that the `*STDOUT{IO}` syntax is only supported in Perl 5.004 and later.  If you have an earlier version of Perl, or are interested in backwards compatibility, use `*STDOUT` instead.

## EXAMPLES

1\. Refuse to run in a too narrow window.

```
    use Term::Size;
    die "Need 80 column screen" if Term::Size::chars *STDOUT{IO} < 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

If there is an error, both functions return `"undef"` in scalar context, or an empty list in list context.

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)"`.

## CAVEATS

Term::Size only works on Unix systems, as it relies on the `"ioctl"` function to retrieve the terminal size. If you need terminal size in Windows, see Term::Size::Win32.

Before version 0.208, `"chars"` and `"pixels"` used to return false on error.

## SEE ALSO

Term::Size::Any, Term::Size::Perl, Term::Size::ReadKey, Term::Size::Win32.

## AUTHOR

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

## MANTAINER

Adriano Ferreira, \<ferreira@cpan.org\>, 2006-05-19.

## COPYRIGHT AND LICENSE

Copyright (C) 1997-05-13 by Tim Goodwin.

You may redistribute them under the same terms as Perl itself.
