Term::Cap - Perl termcap interface |
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.
More information on the terminal capabilities will be found in the termcap manpage on most Unix-like systems.
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.
The 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.
The extracted termcap entry is available in the object
as $self->{TERMCAP}
.
It takes a hash reference as an argument with two optional keys:
It calls croak
on failure.
It takes three arguments:
The padded $string is returned.
It takes three arguments:
The appropriate string for the capability will be returned.
There are four arguments:
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 %.
%>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.
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);
Please see the README file in distribution.
This module is part of the core Perl distribution and is also maintained for CPAN by Jonathan Stowe <jns@gellyfish.com>.
termcap(5)
Term::Cap - Perl termcap interface |