       The Command-Line User Interface     Term::Clui.pm

Term::Clui offers a high-level user interface, with subroutines &choose
&ask &edit &view and &confirm.  It interfaces to the user at a much higher
level than widgets; it gives command-line applications a consistent
"look and feel". Its metaphor for the computer is as a human-like
conversation-partner, and as each answer/response is completed it is
summarised onto one line, and remains on screen, so that the history
of the session gradually accumulates on the screen and is available for
review, or for cut/paste.

For the user, &edit and &view use the default EDITOR and PAGER from the
user's environment, except that if &view is called with a very short
text a builtin viewer is used allowing the user to choose whether the
text remains on-screen or is cleared.  &choose uses arrow keys (or hjkl)
and return (or q to quit); if the choices won't fit on the screen, the
user is asked for a substring clue. &confirm expects Y,y,N or n. &ask
respects left and right arrows and backspace, ctrl-B moves to the beginning,
ctrl-E to the end, and ctrl-C, ctrl-D or ctrl-X clear the current string.

&choose maintains a DBM database of what the user chose last time in
response to the same question and if that choice is in the list this
time then &choose highlights it as the default. Thus &choose manages
its own defaults, and menus using Term::Clui autoconfigure themselves
to the user's preferences.

As of version 1.11, the programmer can pass &ask a default string as
an optional second argument. As of version 1.12, &choose handles big
lists gracefully, asking the user for a substring clue (very cool and
slick ...)

Term::Clui is fast,  very easy for both programmer and user, and has
few external dependencies. It doesn't use curses which is a whole-of
-screen interface; it uses a tiny  and very portable subset of vt100
sequences (up left right normal reverse and clrtoeol).   It requires
Exporter and flush.pl, which are core Perl.   It handles window size
changes, using Term::Size.pm if available; if not, it tries `tput`.

An HTML equivalent is planned, offering similarly named routines for
CGI scripts.

To install:
   perl Makefile.PL
   make
   make test
   make install

Author:
   Peter Billam    computing@pjb.com.au    http://www.pjb.com.au

Available from:
   http://www.cpan.org/SITES.html
