The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Term::Form::ReadLine - Read a line from STDIN.

VERSION

Version 0.557

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 );

$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 a trailing newline character.

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.

Page-Up or Ctrl-P: Move back 10 characters.

Page-Down or Ctrl-N: Move forward 10 characters.

Ctrl-X: If the input puffer is not empty, the input puffer is cleared, else Ctrl-X returns nothing (undef).

Up-Arrow or Ctrl-S: History up.

Down-Arrow or Ctrl-T: History down.

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. A prompt is truncated if the length of the prompt exceeds one third of the terminal width. A truncated prompt is marked with a trailing ~.

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 rows used by readline

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

history

This option allows one to pass a readline history as a reference to an array.

If the entered string matches the beginning of one or more history entries, only these matched history entries are offered.

See "Keys" for how to move through the history.

default: empty

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-2024 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.