MODULE QWizard - A Question and Answer Wizard DESCRIPTION The QWizard module allows script authors to concentrate on the content of the forms they want their users to fill in without worrying about the display. It allows "Question Wizard" like interfaces to be very easily created and the results of the input easily acted upon. Scripts written which are entirely based on QWizard inputs are able to be run from the command line which will show a Gtk2, Tk window or as a ReadLine interactive session or as a CGI script without modification. Script writers do not need to know which interface is being used to display the resulting form(s) as it should be transparent to the script itself. Other wizard interfaces exist for perl, but this one strives very hard to be both extensible and easy to code with requiring as little work by script authors as possible. It is also one of the only ones that supports both web environments and windowing environments without code modification required by the script author. See also the Getopt::GUI::Long module for an interesting use of the QWizard suite. PREREQUISITES In order to make use of the different environments that QWizard can support, you should have at least one of the following module sets installed: Web based scripts: CGI # (common with all perl these days) CGI::Cookie Gtk2 based graphical scripts: Gtk2 Tk based graphical scripts: Tk Tk::Table Tk::FileSelect Tk::Tree # optional Tk::PNG # optional (for image support) CLI support (minimal): Term::ReadLine Additional features available if the modules are available: GD::Graph # graphing support HISTORY QWizard was originally developed within the Net-Policy network management system but was later made to be a separate system and is now used in other applications as well. One of the goals of Net-Policy was to create a user interface that was easy to use and "wizard" driven, helping guide a user through complex tasks. The early Net-Policy code had serious issues trying to keep track of state between long series of user input screens using the standard CGI package, and the QWizard system was developed specifically to combat this problem. Net-Policy is still built on top of it making heavy use of the QWizard system and offers both a Gtk2, Tk, and HTML network management interface using the same code base. The Getopt::GUI::Long module is based on QWizard as well and offers a graphical command-line input interface. FUTURE WORK A curses and WAP (cell phone) interface have been started but aren't being actively worked on (let me know if you are interested it continuing it's development). Once complete existing applications will not need to be modified to make these interfaces work with the newer infrastructure underneath them.