term::cap(3)

NAME

Term::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 ter
minal type TERM (defaults to the environment variable
TERM) from the database.
It will look in the environment for a TERMCAP vari
able. 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 vari able 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 warning 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 mul
tiplied 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
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 capa
bilities)
$FH
An optional filehandle (or IO::Handle ) to which the
output string will be printed.
Substitutions are made with $col and $row in the out
put 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 %.
%>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 re
turn 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@gelly
fish.com>.

SEE ALSO

termcap(5)
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout