Term::Cap(3) Term::Cap(3)
Term::Cap - Perl termcap interface
require Term::Cap;
$terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
$terminal->Trequire(qw/ce ku kd/);
$terminal->Tgoto('cm', $col, $row, $FH);
$terminal->Tputs('dl', $count, $FH);
$terminal->Tpad($string, $count, $FH);
These are low-level functions to extract and use capabilities from a
terminal capability (termcap) database.
The Tgetent function extracts the entry of the specified terminal type
TERM (defaults to the environment variable TERM) from the database.
It will look in the environment for a TERMCAP variable. If found, and
the value does not begin with a slash, and the terminal type name is the
same as the environment string TERM, the TERMCAP string is used instead
of reading a termcap file. If it does begin with a slash, the string is
used as a path name of the termcap file to search. If TERMCAP does not
begin with a slash and name is different from TERM, Tgetent searches the
files $HOME/.termcap, /etc/termcap, and /usr/share/misc/termcap, in that
order, unless the environment variable TERMPATH exists, in which case it
specifies a list of file pathnames (separated by spaces or colons) to be
searched instead. Whenever multiple files are searched and a tc field
occurs in the requested entry, the entry it names must be found in the
same file or one of the succeeding files. If there is a :tc=...: in the
TERMCAP environment variable string it will continue the search in the
files as above.
OSPEED is the terminal output bit rate (often mistakenly called the baud
rate). OSPEED can be specified as either a POSIX termios/SYSV termio
speeds (where 9600 equals 9600) or an old BSD-style speeds (where 13
equals 9600).
Tgetent returns a blessed object reference which the user can then use to
send the control strings to the terminal using Tputs and Tgoto. It calls
croak on failure.
Tgoto decodes a cursor addressing string with the given parameters.
The output strings for Tputs are cached for counts of 1 for performance.
Tgoto and Tpad do not cache. $self->{_xx} is the raw termcap data and
$self->{xx} is the cached version.
print $terminal->Tpad($self->{_xx}, 1);
Tgoto, Tputs, and Tpad return the string and will also output the string
Page 1
Term::Cap(3) Term::Cap(3)
to $FH if specified.
The extracted termcap entry is available in the object as $self>{TERMCAP}.
# Get terminal output speed
require POSIX;
my $termios = new POSIX::Termios;
$termios->getattr;
my $ospeed = $termios->getospeed;
# Old-style ioctl code to get ospeed:
# require 'ioctl.pl';
# ioctl(TTY,$TIOCGETP,$sgtty);
# ($ispeed,$ospeed) = unpack('cc',$sgtty);
# allocate and initialize a terminal structure
$terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
# require certain capabilities to be available
$terminal->Trequire(qw/ce ku kd/);
# Output Routines, if $FH is undefined these just return the string
# Tgoto does the % expansion stuff with the given args
$terminal->Tgoto('cm', $col, $row, $FH);
# Tputs doesn't do any % expansion.
$terminal->Tputs('dl', $count = 1, $FH);
PPPPaaaaggggeeee 2222 [ Back ]
|