Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)

Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p) #

Term::Cap(3p) Perl Programmers Reference Guide Term::Cap(3p)

NNAAMMEE #

 Term::Cap - Perl termcap interface

SSYYNNOOPPSSIISS #

     require Term::Cap;
     $terminal = Term::Cap->Tgetent({ 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.

 More information on the terminal capabilities will be found in the
 termcap manpage on most Unix-like systems.

MMEETTHHOODDSS #

 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.

 TTggeetteenntt
     Returns a blessed object reference which the user can then use to
     send the control strings to the terminal using TTppuuttss and TTggoottoo.

     The function extracts the entry of the specified terminal type _T_E_R_M
     (defaults to the environment variable _T_E_R_M) from the database.

     It will look in the environment for a _T_E_R_M_C_A_P variable.  If found,
     and the value does not begin with a slash, and the terminal type name
     is the same as the environment string _T_E_R_M, the _T_E_R_M_C_A_P 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 _T_E_R_M_C_A_P does not begin with a slash and name is different
     from _T_E_R_M, TTggeetteenntt searches the files _$_H_O_M_E_/_._t_e_r_m_c_a_p, _/_e_t_c_/_t_e_r_m_c_a_p,
     and _/_u_s_r_/_s_h_a_r_e_/_m_i_s_c_/_t_e_r_m_c_a_p, in that order, unless the environment
     variable _T_E_R_M_P_A_T_H 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 _T_E_R_M_C_A_P
     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 warning will be generated
       and it will be defaulted to 9600.  _O_S_P_E_E_D 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).

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
       TTggeetteenntt will croak.

     It calls "croak" on failure.

 TTppaadd
     Outputs a literal string with appropriate padding for the current
     terminal.

     It takes three arguments:

     $$ssttrriinngg
       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/

     $$ccnntt
       Will be used to modify the padding applied to string as described
       above.

$$FFHH #

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

     The padded $string is returned.

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

     It takes three arguments:

     $$ccaapp
       The capability whose string is to be output.

     $$ccnntt
       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.

$$FFHH #

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

     The appropriate string for the capability will be returned.

 TTggoottoo
     TTggoottoo decodes a cursor addressing string with the given parameters.

     There are four arguments:

     $$ccaapp
       The name of the capability to be output.

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

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

$$FFHH #

       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 sspprriinnttff(()) 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.

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

EEXXAAMMPPLLEESS #

     use Term::Cap;

     # Get terminal output speed
     require POSIX;
     my $termios = POSIX::Termios->new;
     $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
     my $terminal = Term::Cap->Tgetent({ 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);

CCOOPPYYRRIIGGHHTT AANNDD LLIICCEENNSSEE #

 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.

AAUUTTHHOORR #

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

 The code is hosted on Github: https://github.com/jonathanstowe/Term-Cap
 please feel free to fork, submit patches etc, etc there.

SSEEEE AALLSSOO #

 tteerrmmccaapp(5)

perl v5.36.3 2023-11-14 Term::Cap(3p)