| Term-Size-ReadKey documentation | Contained in the Term-Size-ReadKey distribution. |
Term::Size::ReadKey - Retrieve terminal size (via Term::ReadKey)
use Term::Size::ReadKey;
($columns, $rows) = Term::Size::ReadKey::chars *STDOUT{IO};
($x, $y) = Term::Size::ReadKey::pixels;
Yet another implementation of Term::Size. Now using
Term::ReadKey to do the hard work.
($columns, $rows) = chars($h);
$columns = chars($h);
chars returns the terminal size in units of characters
corresponding to the given filehandle $h.
If the argument is ommitted, *STDIN{IO} is used.
In scalar context, it returns the terminal width.
($x, $y) = pixels($h);
$x = pixels($h);
pixels returns the terminal size in units of pixels
corresponding to the given filehandle $h.
If the argument is ommitted, *STDIN{IO} is used.
In scalar context, it returns the terminal width.
Many systems with character-only terminals will return (0, 0).
The basic test may fail harshly when running under the test harness. This happens with Term::ReadKey alone as well. Term::ReadKey gets away with murder by setting COLUMNS and LINES environment variables (which are used as a fallback). This release also applies the same cheat. I gotta find a more decent fix to these issues.
It all began with Term::Size by Tim Goodwin. You may want to have a look at:
Term::Size
Term::Size::Unix
Term::Size::Win32
Term::Size::Perl
You may as well be interested in what more Term::ReadKey does.
Term::ReadKey
Please reports bugs via CPAN RT, http://rt.cpan.org/NoAuth/Bugs.html?Dist=Term-Size-ReadKey
A. R. Ferreira, <ferreira@cpan.org>
Copyright (C) 2006-2008 by A. R. Ferreira
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Term-Size-ReadKey documentation | Contained in the Term-Size-ReadKey distribution. |
package Term::Size::ReadKey; use strict; require Exporter; use vars qw( @ISA @EXPORT_OK $VERSION ); @ISA = qw( Exporter ); @EXPORT_OK = qw( chars pixels ); $VERSION = '0.03';
require Term::ReadKey; # ( row, col, x, y ) sub _winsize { my $h = shift || *STDIN; return Term::ReadKey::GetTerminalSize($h); } sub chars { my @sz = _winsize(shift); return @sz[0, 1] if wantarray; return $sz[0]; } sub pixels { my @sz = _winsize(shift); return @sz[2, 3] if wantarray; return $sz[2]; } 1;