NAME
Term::Form::ReadLine - Read a line from STDIN.
VERSION
Version 0.544
SYNOPSIS
# Object-oriented interface:
use Term::Form::ReadLine;
my $new = Term::Form::ReadLine->new();
my $line = $new->readline( 'Prompt: ', { default => 'abc' } );
# Functional interface:
use Term::Form::ReadLine qw( read_line );
my $line = read_line( 'Prompt: ', { default => 'abc' } );
DESCRIPTION
readline
reads a line from STDIN. As soon as Return
is pressed readline
returns the read string without the newline character - so no chomp
is required.
The output is removed after leaving the method, so the user can decide what remains on the screen.
Keys
BackSpace
or Ctrl-H
: Delete the character behind the cursor.
Delete
or Ctrl-D
: Delete the character at point.
Ctrl-U
: Delete the text backward from the cursor to the beginning of the line.
Ctrl-K
: Delete the text from the cursor to the end of the line.
Right-Arrow
or Ctrl-F
: Move forward a character.
Left-Arrow
or Ctrl-B
: Move back a character.
Home
or Ctrl-A
: Move to the start of the line.
End
or Ctrl-E
: Move to the end of the line.
Up-Arrow
or Ctrl-R
: Move back 10 characters.
Down-Arrow
or Ctrl-S
: Move forward 10 characters.
Ctrl-X
: If the input puffer is not empty, the input puffer is cleared, else Ctrl-X
returns nothing (undef).
METHODS
new
The new
method returns a Term::Form::ReadLine
object.
my $new = Term::Form::ReadLine->new();
To set the different options it can be passed a reference to a hash as an optional argument.
readline
readline
reads a line from STDIN.
$line = $new->readline( $prompt, \%options );
The fist argument is the prompt string.
The optional second argument is the default string (see option default) if it is not a reference. If the second argument is a hash-reference, the hash is used to set the different options. The keys/options are
clear_screen
If enabled, the screen is cleared before the output.
0 - clears from the current position to the end of screen
1 - clears the entire screen
2 - clears only the readline row, if show_context is not enabled and info not set. If show_context is enabled or info is set clears from the current position to the end of screen as with clear_screen set to 0.
default: 0
codepage_mapping
This option has only meaning if the operating system is MSWin32.
If the OS is MSWin32, Win32::Console::ANSI is used. By default Win32::Console::ANSI
converts the characters from Windows code page to DOS code page (the so-called ANSI to OEM conversion). This conversation is disabled by default in Term::Choose
but one can enable it by setting this option.
Setting this option to 1
enables the codepage mapping offered by Win32::Console::ANSI.
0 - disable automatic codepage mapping (default)
1 - keep automatic codepage mapping
default: 0
color
Enables the support for color and text formatting escape sequences for the prompt string and the info text.
0 - off
1 - on
default: 0
default
Set a initial value of input.
hide_cursor
0 - disabled
1 - enabled
default: 1
info
Expects as is value a string. If set, the string is printed on top of the output of readline
.
no_echo
0 - the input is echoed on the screen.
1 - "*
" are displayed instead of the characters.
2 - no output is shown apart from the prompt string.
default: 0
show_context
Display the input that does not fit into the "readline" before or after the "readline".
0 - disable show_context
1 - enable show_context
default: 0
REQUIREMENTS
Perl version
Requires Perl version 5.10.0 or greater.
Terminal
It is required a terminal which uses a monospaced font.
Unless the OS is MSWin32 the terminal has to understand ANSI escape sequences.
Encoding layer
It is required to use appropriate I/O encoding layers. If the encoding layer for STDIN doesn't match the terminal's character set, readline
will break if a non ascii character is entered.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Term::Form::ReadLine
AUTHOR
Matthäus Kiem <cuer2s@gmail.com>
CREDITS
Thanks to the Perl-Community.de and the people form stackoverflow for the help.
LICENSE AND COPYRIGHT
Copyright 2022-2022 Matthäus Kiem.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For details, see the full text of the licenses in the file LICENSE.