Term::Cap(3)
NNAAMMEE
Term::Cap - Perl termcap interface
SSYYNNOOPPSSIISS
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);
DDEESSCCRRIIPPTTIIOONN
These are low-level functions to extract and use
capabilities from a terminal capability (termcap)
database.
The TTggeetteenntt 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, TTggeetteenntt 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 iinnsstteeaadd. 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).
TTggeetteenntt returns a blessed object reference which the user
can then use to send the control strings to the terminal
using TTppuuttss and TTggoottoo. It calls croak on failure.
TTggoottoo decodes a cursor addressing string with the given
parameters.
The output strings for TTppuuttss are cached for counts of 1
for performance. TTggoottoo and TTppaadd do not cache.
$self->{_xx} is the raw termcap data and $self->{xx} is
the cached version.
print $terminal->Tpad($self->{_xx}, 1);
TTggoottoo, TTppuuttss, and TTppaadd return the string and will also
output the string to $FH if specified.
The extracted termcap entry is available in the object as
$self->{TERMCAP}.
EEXXAAMMPPLLEESS
# 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);