View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Rocky Bernstein > Term-ReadLine-Perl5-1.43 > Term::ReadLine::Perl5



Annotate this POD

View/Report Bugs
Module Version: 1.43   Source   Latest Release: Term-ReadLine-Perl5-1.45

Name ^

Term::ReadLine::Perl5 - A Perl5 implementation GNU Readline


This is a implementation of the GNU Readline/History Library written in Perl5.

GNU Readline reads lines from an interactive terminal with emacs or vi editing capabilities. It provides as mechanism for saving history of previous input.

This package typically used in command-line interfaces and REPLs (Read, Eval, Print, Loop).

Demo program

Another package, Term::ReadLine::Perl5::Demo is available to let you run Term::ReadLine::Perl5 to experiment with its capabilities and show how to use the API.

Synopsis ^

  use Term::ReadLine::Perl5;
  $term = Term::ReadLine::Perl5->new('ProgramName');
  while ( defined ($_ = $term->readline('prompt>')) ) {


Following GNU Readline/History Library variables can be accessed from Perl program. See 'GNU Readline Library Manual' and ' GNU History Library Manual' for each variable. You can access them via the Attribs method. Names of keys in this hash conform to standard conventions with the leading rl_ stripped.


    $term = Term::ReadLine::Perl5->new('ReadLineTest');
    $attribs = $term->Attribs;
    $v = $attribs->{history_base};      # history_base

Attribute Names

        completion_suppress_append (bool)
        history_base               (int)
        history_stifled            (int)
        max_input_history          (int)
        outstream                  (file handle)

Subroutine ^

Standard Term::ReadLine Methods

These methods are standard methods defined by Term::ReadLine.


    Readline() -> 'Term::ReadLine::Perl5'

returns the actual package that executes the commands. If this package is used, the value is Term::ReadLine::Perl5.


   $bool = $term->readline($prompt, $default)

The main routine to call interactively read lines. Parameter $prompt is the text you want to prompt with If it is empty string, no preceding prompt text is given. It is undef a default value of "INPUT> " is used.

Parameter $default is the default value; it can be can be omitted. The next input line is returned or undef on EOF.



returns the handle for subsequent calls to following functions. Argument is the name of the application. Optionally can be followed by two arguments for IN and OUT file handles. These arguments should be globs.

$name is the name of the application.

This routine may also get called via Term::ReadLine->new($term_name) if you have $ENV{PERL_RL} set to 'Perl5';

At present, because this code has lots of global state, we currently don't support more than one readline instance.



Returns the input filehandle



Returns the output filehandle


Term::ReadLine::Perl5->newTTY(IN, OUT)

takes two arguments which are input filehandle and output filehandle. Switches to use these filehandles.



If $minlength is given, set $readline::minlength the minimum length a $line for it to go into the readline history.

The previous value is returned.


   $term->add_history>($line1, $line2, ...)

adds the lines, $line1, etc. to the input history list.

AddHistory is an alias for this function.



Stifle or put a cap on the history list, remembering only $max number of lines.

StifleHistory is an alias for this function.



Returns a reference to a hash with keys being features present in current implementation. Several optional features are used in the minimal interface:

See also ^

syntax highlighting: