Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)NAMETerm::Cap - Perl termcap interface
SYNOPSIS
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);
DESCRIPTION
These are low-level functions to extract and use capabili-
ties from a terminal capability (termcap) database.
More information on the terminal capabilities will be found
in the termcap manpage on most Unix-like systems.
METHODS
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 to $FH if specified.
Tgetent
Returns a blessed object reference which the user can
then use to send the control strings to the terminal
using Tputs and Tgoto.
The function extracts the entry of the specified termi-
nal 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 read-
ing 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
perl v5.8.8 2005-02-05 1
Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)
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.
The extracted termcap entry is available in the object
as "$self->{TERMCAP}".
It takes a hash reference as an argument with two
optional keys:
OSPEED
The terminal output bit rate (often mistakenly called
the baud rate) for this terminal - if not set a warn-
ing will be generated and it will be defaulted to
9600. OSPEED can be be specified as either a POSIX
termios/SYSV termio speeds (where 9600 equals 9600) or
an old DSD-style speed ( where 13 equals 9600).
TERM
The terminal type whose termcap entry will be used -
if not supplied it will default to $ENV{TERM}: if that
is not set then Tgetent will croak.
It calls "croak" on failure.
Tpad
Outputs a literal string with appropriate padding for
the current terminal.
It takes three arguments:
$string
The literal string to be output. If it starts with a
number and an optional '*' then the padding will be
increased by an amount relative to this number, if the
'*' is present then this amount will me multiplied by
$cnt. This part of $string is removed before output/
$cnt
Will be used to modify the padding applied to string
as described above.
$FH
An optional filehandle (or IO::Handle ) that output
will be printed to.
The padded $string is returned.
Tputs
Output the string for the given capability padded as
perl v5.8.8 2005-02-05 2
Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)
appropriate without any parameter substitution.
It takes three arguments:
$cap
The capability whose string is to be output.
$cnt
A count passed to Tpad to modify the padding applied
to the output string. If $cnt is zero or one then the
resulting string will be cached.
$FH
An optional filehandle (or IO::Handle ) that output
will be printed to.
The appropriate string for the capability will be
returned.
Tgoto
Tgoto decodes a cursor addressing string with the given
parameters.
There are four arguments:
$cap
The name of the capability to be output.
$col
The first value to be substituted in the output string
( usually the column in a cursor addressing capability
)
$row
The second value to be substituted in the output
string (usually the row in cursor addressing capabili-
ties)
$FH
An optional filehandle (or IO::Handle ) to which the
output string will be printed.
Substitutions are made with $col and $row in the output
string with the following sprintf() line formats:
%% output `%'
%d output value as in printf %d
%2 output value as in printf %2d
%3 output value as in printf %3d
%. output value as in printf %c
%+x add x to value, then do %.
perl v5.8.8 2005-02-05 3
Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)
%>xy if value > x then add y, no output
%r reverse order of two parameters, no output
%i increment by one, no output
%B BCD (16*(value/10)) + (value%10), no output
%n exclusive-or all parameters with 0140 (Datamedia 2500)
%D Reverse coding (value - 2*(value%16)), no output (Delta Data)
The output string will be returned.
Trequire
Takes a list of capabilities as an argument and will
croak if one is not found.
EXAMPLES
use Term::Cap;
# 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);
COPYRIGHT AND LICENSE
Please see the README file in distribution.
AUTHOR
This module is part of the core Perl distribution and is
also maintained for CPAN by Jonathan Stowe
<jns@gellyfish.com>.
SEE ALSOtermcap(5)perl v5.8.8 2005-02-05 4