Term::Menus allows you to create powerful Terminal, Console and CMD
environment menus. Any perl script used in a Terminal, Console or CMD
environment can now include a menu facility that includes sub-menus,
forward and backward navigation, single or multiple selection
capabilities, dynamic item creation and customized banners. All this
power is simple to implement with a straight forward and very
intuitive configuration hash structure that mirrors the actual menu
architecture needed by the application. A separate configuration file
is optional. Term::Menus is cross platform compatible.
Term::ProgressBar is a wonderful module for showing progress bars on the
terminal. This module acts very much like that module when it is run
interactively. However, when it is not run interactively (for example,
as a cron job) then it does not show the progress bar.
Progress bars are handy - they tell you how much work has been done, how much
is left to do and estimate how long it will take. But they can be fiddly! This
module does the right thing in almost all cases in a really convenient way.
It wraps Term::ProgressBar::Quiet so there is no output unless the code is
running interactively - lets you put them in cron scripts.
It deals with minor updates - only refreshes the screen when it will change
what the user sees so it is efficient.
It completes the progress bar when the progress object is destroyed (explicitly
or by going out of scope) - no more '99%' done.
A really simple progress bar for things that take a while.
Doing something: ###########
The bar grows as things done. Fifty hash marks are printed
altogether.
This perl routine will take a prompt, a default response and a list
of possible responses and deal with the user interface, (and the
user!), by displaying the prompt, showing the default, and checking
to be sure that the response is one of the legal choices.
Test::Harness is limited to printing out its results. This makes analysis of
the test results difficult for anything but a human. To make it easier for
programs to work with test results, we provide Test::Harness::Straps. Instead
of printing the results, straps provide them as raw data. You can also
configure how the tests are to be run.
Excerpted from the README file:
Term::Query.pm is a Perl 5 module, which performs generalized queries on
various kinds of values. Validation and normalization of input, based
on the type, is automated, as is error reporting and re-solicitation of
input.
Input of '?', unless configured otherwise, provides useful, helpful
information, based on the expected input type, even in the absence of a
programmer-supplied help string.
Term::RawInput is a simple drop-in replacement for <STDIN> in scripts
with the additional ability to capture and return the non-standard keys
like 'End', 'Escape', 'Insert', etc.
This testing module provides a single function, is_hexstr(), which
asserts that the given string matches what was expected. When the
strings match (i.e. compare equal using the eq operator), the behaviour
is identical to the usual is() function provided by Test::More.
Test::Identity provides a single testing function, identical. It asserts that a
given reference is as expected; that is, it either refers to the same object or
is undef. It is similar to Test::More::is except that it uses refaddr, ensuring
that it behaves correctly even if the references under test are objects that
overload stringification or numification.
It also provides better diagnostics if the test fails.