logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Term::Size - Retrieve terminal size on Unix

Author

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

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.

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

Mantainer

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

Name

       Term::Size - Retrieve terminal size on Unix

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

See Also

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

Synopsis

           use Term::Size;

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

See Also