Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Term::Cap(3)	       Perl Programmers	Reference Guide		  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.

       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.

	   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 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

	   It takes a hash reference as	an argument with two optional keys:

	     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 specified	as
	     either a POSIX termios/SYSV termio	speeds (where 9600 equals
	     9600) or an old DSD-style speed ( where 13	equals 9600).

	     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.

	   Outputs a literal string with appropriate padding for the current

	   It takes three arguments:

	     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 be multiplied	by $cnt.  This part of $string is removed
	     before output/

	     Will be used to modify the	padding	applied	to string as described

	     An	optional filehandle (or	IO::Handle ) that output will be
	     printed to.

	   The padded $string is returned.

	   Output the string for the given capability padded as	appropriate
	   without any parameter substitution.

	   It takes three arguments:

	     The capability whose string is to be output.

	     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.

	     An	optional filehandle (or	IO::Handle ) that output will be
	     printed to.

	   The appropriate string for the capability will be returned.

	   Tgoto decodes a cursor addressing string with the given parameters.

	   There are four arguments:

	     The name of the capability	to be output.

	     The first value to	be substituted in the output string ( usually
	     the column	in a cursor addressing capability )

	     The second	value to be substituted	in the output string (usually
	     the row in	cursor addressing capabilities)

	     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 %.

	    %>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.

	   Takes a list	of capabilities	as an argument and will	croak if one
	   is not found.

	   use Term::Cap;

	   # Get terminal output speed
	   require POSIX;
	   my $termios = new POSIX::Termios;
	   my $ospeed =	$termios->getospeed;

	   # Old-style ioctl code to get ospeed:
	   #	 require '';
	   #	 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 1995-2015 (c) perl5 porters.

       This software is	free software and can be modified and distributed
       under the same terms as Perl itself.

       Please see the file README in the Perl source distribution for details
       of the Perl license.

       This module is part of the core Perl distribution and is	also
       maintained for CPAN by Jonathan Stowe <>.

       The code	is hosted on Github:
       please feel free	to fork, submit	patches	etc, etc there.


perl v5.35.5			  2021-09-26			  Term::Cap(3)


Want to link to this manual page? Use this URL:

home | help