NAME
Term::Form::ReadLine - Read a line from STDIN.
VERSION
Version 0.545
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 hash-keys/options are:
clear_screen
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.
0 - disables the automatic codepage mapping (default)
1 - keeps the 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 - disabled
1 - enabled
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.