Path: usenet.cis.ufl.edu!usenet.eel.ufl.edu!tank.news.pipex.net!pipex!news.sprintlink.net!psgrain!nntp.teleport.com!usenet
From: Alan Stebbens <
[email protected]>
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc
Subject: ANNOUNCE: Term::Query.pm -- Terminal query parser module for Perl 5.
Followup-To: comp.lang.perl.misc
Date: 2 Oct 1995 22:28:57 GMT
Organization: Teleport - Portland's Public Access (503) 220-1016
Lines: 112
Approved:
[email protected] (comp.lang.perl.announce)
Message-ID: <
[email protected]>
Reply-To: Alan Stebbens <
[email protected]>
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:140 comp.lang.perl.misc:7706
After implementing some suggestions which allow the Query module to fit
within the Modules List hierarchy, and a small bug fix on referenced
variables, a new version of the Term::Query module is available as both
a gzipped, tar archive and a shar archive as well.
ftp://hub.ucsb.edu/pub/prog/perl/Term-Query-1.15.tar.gz
ftp://hub.ucsb.edu/pub/prog/perl/Term-Query-1.15.shar
Please note that this path is new, because of a subdirectory
re-organization.
The README for the package follows.
Enjoy.
_______________________________________
Alan K. Stebbens <
[email protected]>
College of Engineering
University of California, Santa Barbara
============================= cut here ===================================
This is the README file ($Revision: 1.10 $) for Term::Query.pm.
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.
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),
Carp.pm (it diagnoses some misuse of itself) and the PrintArray.pm
module (by the same author).
There is a Makefile with several useful targets for installing at one or
more common locations; there is a "test" target which will perform
regression tests against previous "good" output (see the "t" directory).
The Query.pm archive is available under the GNU General License,
Version 2, and is located at:
ftp://hub.ucsb.edu/pub/prog/perl/Term-Query-$VER.shar
ftp://hub.ucsb.edu/pub/prog/perl/Term-Query-$VER.tar.gz
where $VER is the latest version number. The ".shar" suffix indicates
a "shell archive"; the ".tar.gz" suffix indicates a "gzip" compressed
"tar" archive.
Suggestions or improvements are welcome.
Copyright (C) 1995 Alan K. Stebbens <
[email protected]>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
_______________________________________
Alan K. Stebbens <
[email protected]>
College of Engineering
University of California, Santa Barbara