          The Command-Line User Interface     Term::Clui

Term::Clui offers a high-level user interface, with subroutines &choose
&ask &edit &view &confirm and &sorry.  It works at a higher level than
widgets; it gives command-line applications a consistent "look and feel".
Its metaphor for the computer is 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 dialogue gradually
accumulates on the screen and is available for review, or for cut/paste.
If &choose is called in an array context, it offers multiple choice.
Also included is the file-selector module Term::Clui::FileSelect,
with its main subroutine &select_file.  Term::Clui doesn't yet work
yet under Windows.

To install ( cool ! new ! interactive ! ) just:
   perl Install

that's all ! or you can still do it the usual way ...
   perl Makefile.PL
   make
   make install

For up-to-date source, see http://search.cpan.org/~pjb or see
http://www.cpan.org/SITES.html in the directory authors/id/P/PJ/PJB

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);  the spacebar marks  items in a multiple
choice. 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.

The programmer can pass &ask a default string  as an optional second
argument.  &choose handles big lists gracefully, asking the user for
a substring clue (very cool..), and when called in an array context,
offers the user multiple choice. &select_file obeys options modelled
after those of Tk::FileDialog.pm and Tk::SimpleFileSelect.pm

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
only Exporter, which is core Perl.   It handles window size changes,
using Term::Size.pm if available; if not, it tries `tput`.

Peter Billam                http://www.pjb.com.au/comp/contact.html

