manpagez: man pages & more
man Term::Cap(3)
Home | html | info | man
Term::Cap(3pm)         Perl Programmers Reference Guide         Term::Cap(3pm)


       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.24.0                      2016-03-01                    Term::Cap(3pm)

perl 5.24 - Generated Thu Nov 24 13:49:01 CST 2016
© 2000-2018
Individual documents may contain additional copyright information.