NAME
Term::Screen::ReadLine - Term::Screen extended with ReadLine
SYNOPSIS
use lib "./blib/lib";
use Term::Screen::ReadLine;
$scr = new Term::Screen::ReadLine;
$scr->clrscr();
$a=$scr->getch();
print $a," ",length $a," ",ord($a),"\n";
$scr->two_esc;
$a=$scr->getch();
print $a," ",length $a," ",ord($a),"\n";
$scr->one_esc;
$scr->clrscr();
$scr->at(4,4)->puts("input? ");
$line=$scr->readline(ROW => 4, COL => 12);
$line=$scr->readline(ROW => 5, COL => 12, DISPLAYLEN => 20);
$scr->at(10,4)->puts($line);
$scr->two_esc;
$line=$scr->readline(ROW => 6, COL => 12, DISPLAYLEN => 20, ONLYVALID => "[ieIE]+", CONVERT => "up");
print "\n";
print $scr->lastkey(),"\n";
$r=$scr->getch();
print $r,ord($r),"\n";
$r=ord($r);
print $r,"\n";
if ($r eq 13) {
print "aja!\n";
}
exit;
DESCRIPTION
This module extends Term::Screen with a readline() function. It also makes it possible to use a *single* Esc to escape instead of the Term::Screen double Esc.
USAGE
readline( ROW => 0, COL => 0, LEN => 40, DISPLAYLEN => undef, LINE => "", ONLYVALID => undef, CONVERT => undef, PASSWORD => undef, )
ROW,COL 'at(ROW,COL) readline()...'.
LEN The maximum length of the line to read.
DISPLAYLEN The maximum length of the displayed field.
The display will scroll if the displaylen is exceeded.
EXITS Explained below.
LINE A default value for LINE to use.
ONLYVALID A regex to validate the input.
CONVERT "up" or "lo" for uppercase or lowercase. Nothing
if not used. Note: conversion will take place *after*
validation.
PASSWORD Display stars ('*') instead of what is typed..
returns the inputted line.
The readline() function does always return on the following keys:
Enter, Arrow up, Arrow down, Esc, Tab and Ctrl-Enter.
This can be extended using the EXITS argument, is a hash of keys
(see Term::Screen) and a description to return for that key.
example:
EXITS => { "k1" => "help", "k3" => "cancel" },
last_key()
returns the last key pressed, that made the readline function return.
one_esc()
Makes it possible to press only one time Esc to make readline return.
This is the default for Term::Screen::ReadLine.
two_esc()
Revert back to the standard Term::Screen behaviour for the Esc key.
AUTHOR
Hans Dijkema <hans@oesterholt-dijkema.emailt.nl>