Term::ReadLine::Tiny - Tiny implementation of ReadLine
version 1.09
use Term::ReadLine::Tiny; $term = Term::ReadLine::Tiny->new(); while ( defined($_ = $term->readline("Prompt: ")) ) { print "$_\n"; } print "\n"; $s = ""; while ( defined($_ = $term->readkey(1)) ) { $s .= $_; } print "\n$s\n";
This package is a native perls implementation of ReadLine that doesn't need any library such as 'Gnu ReadLine'. Also fully supports UTF-8, details in UTF-8 section.
Enter or ^J or ^M: Gets input line. Returns the line unless EOF or aborting or error, otherwise undef.
Enter
^J
^M
EOF
BackSpace or ^H or ^?: Deletes one character behind cursor.
BackSpace
^H
^?
UpArrow: Changes line to previous history line.
UpArrow
DownArrow: Changes line to next history line.
DownArrow
RightArrow: Moves cursor forward to one character.
RightArrow
LeftArrow: Moves cursor back to one character.
LeftArrow
Home or ^A: Moves cursor to the start of the line.
Home
^A
End or ^E: Moves cursor to the end of the line.
End
^E
PageUp: Change line to first line of history.
PageUp
PageDown: Change line to latest line of history.
PageDown
Insert: Switch typing mode between insert and overwrite.
Insert
Delete: Deletes one character at cursor. Does nothing if no character at cursor.
Delete
Tab or ^I: Completes line automatically by history.
Tab
^I
^D: Aborts the operation. Returns undef.
^D
undef
returns the actual package that executes the commands. If this package is used, the value is Term::ReadLine::Tiny.
Term::ReadLine::Tiny
returns the handle for subsequent calls to following functions. Argument appname is the name of the application but not supported yet. Optionally can be followed by two arguments for IN and OUT filehandles. These arguments should be globs.
This routine may also get called via Term::ReadLine->new() if you have $ENV{PERL_RL} set to 'Tiny'.
Term::ReadLine->new()
interactively gets an input line. Trailing newline is removed.
Returns undef on EOF.
AddHistory($line1[, $line2[, ...]])
adds lines to the history of input.
returns the filehandle for input.
returns the filehandle for output.
minline([$minline])
If argument is specified, it is an advice on minimal size of line to be included into history. undef means do not include anything into history (autohistory off).
Returns the old value.
returns an array with two strings that give most appropriate names for files for input and output using conventions "<$in", "out">.
"<$in"
"
returns a reference to a hash which describes internal configuration of the package. Not supported in this package.
Returns a reference to a hash with keys being features present in current implementation. This features are present:
appname is not present and is the name of the application. But not supported yet.
addhistory is present, always TRUE.
TRUE
minline is present, default 1. See MinLine method.
MinLine
autohistory is present. FALSE if minline is undef. See MinLine method.
FALSE
gethistory is present, always TRUE.
sethistory is present, always TRUE.
changehistory is present, default TRUE. See changehistory method.
changehistory
utf8 is present, default TRUE. See utf8 method.
utf8
takes two arguments which are input filehandle and output filehandle. Switches to use these filehandles.
This is void implementation. Ornaments is not supported.
GetHistory()
Returns copy of the history in Array.
SetHistory($line1[, $line2[, ...]])
rewrites all history by argument values.
If argument is specified, it allows to change history lines when argument value is true.
reads a key from input and echoes if echo argument is TRUE.
If $enable is TRUE, all read methods return that binary encoded UTF-8 string as possible.
$enable
encodes if first character of argument $c is a control character, otherwise returns first character of argument $c.
$c
Example: "\n" is ^J.
Sets a coderef to be used to autocompletion. If $coderef is undef, will restore default behaviour.
$coderef
The coderef will be called like $coderef->($term, $line, $ix), where $line is the existing line, and $ix is the current location in the history. It should return the completed line, or undef if completion fails.
$coderef->($term, $line, $ix)
$line
$ix
Term::ReadLine::Tiny fully supports UTF-8. If no input/output file handle specified when calling new() or newTTY(), opens console input/output file handles with :utf8 layer by LANG environment variable. You should set :utf8 layer explicitly, if input/output file handles specified with new() or newTTY().
new()
newTTY()
:utf8
LANG
$term = Term::ReadLine::Tiny->new("", $in, $out); binmode($term->IN, ":utf8"); binmode($term->OUT, ":utf8"); $term->utf8(0); # to get UTF-8 marked string as possible while ( defined($_ = $term->readline("Prompt: ")) ) { print "$_\n"; } print "\n";
Cursor doesn't move to new line at end of terminal line on some native terminals.
Term::ReadLine::Tiny::readline - A non-OO package of Term::ReadLine::Tiny
Term::ReadLine - Perl interface to various readline packages
To install this module type the following
perl Makefile.PL make make test make install
from CPAN
cpan -i Term::ReadLine::Tiny
This module requires these other modules and libraries:
Term::ReadLine
Term::ReadKey
GitHub https://github.com/orkunkaraduman/p5-Term-ReadLine-Tiny
CPAN https://metacpan.org/release/Term-ReadLine-Tiny
Orkun Karaduman (ORKUN) <orkun@cpan.org>
Adriano Ferreira (FERREIRA) <ferreira@cpan.org>
Toby Inkster (TOBYINK) <tobyink@cpan.org>
Copyright (C) 2017 Orkun Karaduman <orkunkaraduman@gmail.com>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
To install Term::ReadLine::Tiny, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Term::ReadLine::Tiny
CPAN shell
perl -MCPAN -e shell install Term::ReadLine::Tiny
For more information on module installation, please visit the detailed CPAN module installation guide.