NAME
Term::Size::Unix - Perl extension for retrieving terminal size (Unix version)
SYNOPSIS
use Term::Size::Unix;
($columns, $rows) = Term::Size::Unix::chars *STDOUT{IO};
($x, $y) = Term::Size::Unix::pixels;
DESCRIPTION
THIS IS AN UNOFFICIAL PATCH AGAINST Term-Size 0.2 DISTRIBUTION
FOUND ON CPAN (http://search.cpan.org/~timpx/Term-Size-0.2/).
IT IS UNOFFICIAL IN THE SENSE THAT THE AUTHOR Tim Goodwin
HASN'T APPROVED IT (YET, I HOPE). BECAUSE OF THIS, THIS
DISTRIBUTION IS NOT INDEXED AND AVAILABLE VIA cpan OR cpanp
SHELLS UNLESS YOU EXPLICITLY SAY
"install FERREIRA/Term-Size-0.203.tar.gz".
THIS IS UNDELICATE? I THINK IT IS IN A CERTAIN SENSE. BUT IT
IS A WAY TO UNFREEZE THE CURRENT DISTRIBUTION STATUS. IF TIM
DISAPPROVES, I WILL REMOVE THIS DISTRIBUTION RIGHT AWAY.
IF HE APPROVES, I WILL REMOVE THIS DISTRIBUTION RIGHT AWAY
AND WORK OUT (AFTER BEEN GIVEN MAINTAINERSHIP STATUS)
A DISTRIBUTION WITHOUT THIS NOTE AND WHICH INDEXES CORRECTLY.
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
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.
Candidate for maintainership: Adriano Ferreira, <ferreira@cpan.org>, 2006-05-19.