Path: usenet.cis.ufl.edu!usenet.eel.ufl.edu!psgrain!nntp.teleport.com!usenet From: Alan Stebbens Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc Subject: ANNOUNCE: Query.pm; Perl 5 module for generalized queries Followup-To: comp.lang.perl.misc Date: 21 Sep 1995 14:35:35 GMT Organization: Teleport - Portland's Public Access (503) 220-1016 Lines: 73 Approved: merlyn@stonehenge.com (comp.lang.perl.announce) Message-ID: <43rt7n$na2@maureen.teleport.com> Reply-To: Alan Stebbens NNTP-Posting-Host: linda.teleport.com X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content. Xref: usenet.cis.ufl.edu comp.lang.perl.announce:127 comp.lang.perl.misc:6828 This is to announce a new Perl 5 module, Query.pm, which is available at ftp://hub.ucsb.edu/pub/prog/Query.shar The following is the README file accompanying it. ------------------------------ This file describes the Query.pm 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. There is one primary subroutine, called "query", which is passed a prompt and some "flags", optionally followed by addtional arguments, depending upon the particular flags. The flags are single characters which indicate: * input type: integer, real, string, yes-no, keyword, or non-keyword; * default input, in the absence of user input; * help string, to be reported for errors or input of '?'; * input validation, such as regexp matching, maximum length, and "check" subroutine calls; * input handling, such as blank squeezing, and "before" subroutine calls. * name of the variable to be set with the validated input. An accompanying subroutine, query_table, can be passed an array of of arguments which will be interatively passed to query, allowing for easy generation of table-driven query-response input routines. The subroutine query_table_set_defaults can be used on a query table array to cause any mentioned variables to be initialized with any mentioned default values. This is handy for having a single table defining variables, their default values, and the validation criteria for setting new values. The subroutine query_table_process can be used on a query table array to process the array in a complete general fashion. Complete details are provided within the module, in the Perl 5 "pod" format. Traditional man pages are available with the command: pod2man Query.pm | nroff -man - The code was developed and requires Perl5.001m (eg: it uses references). The library is available under the GNU General License, Version 2, and is located at: ftp://hub.ucsb.edu/pub/prog/Query.shar Suggestions or improvements are welcome. _______________________________________ Alan K. Stebbens College of Engineering University of California, Santa Barbara .