New module HTML::EasyTags

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   HTML::EasyTags
  DSLI:bdpO
  description: Make proper HTML 4 tags/lists/parts
  userid:  DUNCAND (Darren Duncan)
  chapterid:   15 (World_Wide_Web_HTML_HTTP_CGI)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 13:51:03 2001 GMT

The resulting entry will be:

HTML::
::EasyTagsbdpO Make proper HTML 4 tags/lists/parts  DUNCAND

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



Re: Namespace for PGP module

2001-01-02 Thread Andreas J. Koenig

> On Mon, 1 Jan 2001 17:43:22 -0600, "Jason" <[EMAIL PROTECTED]> said:

 > I've made a mod that works with PGP (tested with 2.6.2 on BSD and Windows,
 > and 6.5.8 on Windows).  It is similar to some of the existing modules (in
 > particular Crypt::PGP5 and PGP::Pipe) but runs on windows.  For some reason
 > I cannot get the existing PGP modules to work on windows - probably my own
 > stupidity.

Are you registered as author? If so under which name? If not, would
you please let us know you name, email, homepage, preferred userid?

-- 
andreas



Re: Request for namespaces

2001-01-02 Thread Andreas J. Koenig

> On Sun, 31 Dec 2000 14:09:46 -0500, "Miko O'Sullivan" <[EMAIL PROTECTED]> said:

miko> Math::BooleanArray adpO  Parse boolean expressions
>> 
>> I cannot follow the relation of "Parse" and "Array". Could you explain
>> the idea a little?--Thanks!

 > The object parses the expression into an array of component expressions.
 > For example, the expression "yea | ney" would be parsed into an array
 > consisting of "yea" and "ney".  You evaluate the expression by changing each
 > component in the array to 1 or 0.  The object then substitutes each element
 > back into the expression, so the above would end up as something like "1 |
 > 0" which of course evaluates to 1.

 > If you have any other suggestions I'd be happy to consider them.  I would
 > prefer to avoid "BooleanParse" because that may imply a much bigger set of
 > utilities.

I'm sure I'm missing something very basic here: Where is the "or" in
the array? I mean, how do "yea | ney" and "yea & ney" differ?


-- 
andreas



RFC: New HPUX::Ioscan module

2001-01-02 Thread Dominique Dumont


Hello

I've written for my needs an interface module that works on top of the
HP-UX command ioscan. This module is quite basic but it interests some
people in the community. (See the small thread in c.l.p.modules for
further details)

So do you agree that:
- The HPUX:: namespace should be created ?
- I use HPUX::Ioscan for this module ?

If yes (or if I get no answer) I'll upload this new module to CPAN
real soon.

Cheers (and happy new year).


-- 
[EMAIL PROTECTED]



Author registration and Perl Ole for Process Control module

2001-01-02 Thread Martin Tomes


I have a Perl module which uses the Win32::OLE modules to implement a Perl
interface to the OLE for Process Control COM interface.  This module is
currently available from the OPC Programmers Connection site at
http://www.opc.dial.pipex.com/tooltech.shtml#perl

I am not sure how many people have downloaded this, but I have received a
request to put this module on CPAN to make it easier for the Perl community to
find.

Therefore I am asking for access to PAUSE and these are the required details:

Name:Martin Tomes
Email address:   [EMAIL PROTECTED]
user-ID on CPAN: MARTINTO
Contributed Module:  Win32::OLE::OPC - OPC Server Interface

   SYNOPSIS
   Two ways of using the OPC interface are provided, the class
   methods:

   use Win32::OLE::OPC;

   my $opcintf = Win32::OLE::OPC->new('Someones.OPCAutomation',
  'Someones.Server');
   $opcintf->MoveToRoot;
   foreach $item ($opcintf->Leafs) {
 print $item->{name}, "\n";
 my %result = $opcintf->ItemData($item->{itemid});
 for $attrib (keys %result) {
   print "[", $attrib, " = '", $result{$attrib}, "']", 
"\n";
 }
 print "\n";
   }
   foreach $item ($opcintf->Branches) {
 print $item->{name}, "\n";
   }
   or a tied hash:
   
   use Win32::OLE::OPC;

   my %OPC;
   tie %OPC, Win32::OLE::OPC, 'Someones.OPCAutomation', 
'Someones.Server';
   
   # OK, list the keys...
   for $key (keys %OPC) {
 my %x = %{$OPC{$key}};
 print $key, "\n";
 for $attrib (keys %x) {
   print "'", $attrib, "' = '", $x{$attrib}, "'", "\n";
 }
 print "\n";
   }

   The tied hash method has to return a reference to a hash
   containing the item data hence the unpleasant code '`%x =
   %{$OPC{$key}}''. Alternatively one can assign the returned value
   into a scalar and dereference it when using the hash like this
   '`keys %$x'' and '`$result->{$item}''.

   Note that both methods can be used together. First create an
   interface using the `new()' method and then tie it like this:

   tie %OPC, $opcintf, 'Someones.OPCAutomation', 'Someones.Server';

Module Listing:  (argh!! the name is two chars too long.)

NameDSLI  Description  Info
-      -
Win32::OLE::OPC RdpO  Ole for Process Control Server Interface MARTINTO


I would like advice on the namespace.  This is a COM interface and it is
therefore logical to put it in the Win32::OLE space, but that is owned and run
from ActiveState (I think).  Is it Bad Form(tm) to put a module in someone
elses space?  The only realistic alternative is Win32::OPC which would be OK
if a little less accurate.

-- 
Regards,

Martin Tomes

[EMAIL PROTECTED]




Re: would like to contribute 2 perl modules

2001-01-02 Thread Brian Williams

Andreas,

Yes, the AltaVista::SearchSDK module by James Turner is quite outdated.

The AltaVista::PerlSDK module I want to submit is up-to-date with our most
recent Search Developer's Kit functionality.

Thanks,
/ Brian Williams
http://solutions.altavista.com


-Original Message-
From: Andreas J. Koenig <[EMAIL PROTECTED]>
To: Brian Williams <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Sunday, December 31, 2000 11:26 AM
Subject: Re: would like to contribute 2 perl modules


>> On Thu, 21 Dec 2000 19:36:21 -0500, "Brian Williams"
<[EMAIL PROTECTED]> said:
>
> > I would like to contribute two perl 5.x modules.  Below is my
information:
> > Name: Brian Williams
> > Email: [EMAIL PROTECTED]
> > Preferred Uername: bwilliam
> > What I want to submit: Two modules, named AltaVista::PerlSDK and
> > AltaVista::SDKLinguistics.  These are modules that enable programmers to
> > utilize the AltaVista Search Developer's Kit ( see
> > http://solutions.altavista.com ) C libraries from Perl programs.
> > Yes, I'm sure there is interest in these two Perl modules.
>
>Have you checked
>
>cpan> m AltaVista::SearchSDK
>Module id = AltaVista::SearchSDK
>DESCRIPTION  Perl Wrapper for AltaVista SDK functionality
>CPAN_USERID  JTURNER (James Turner <[EMAIL PROTECTED]>)
>CPAN_VERSION 0.01
>CPAN_FILEJ/JT/JTURNER/SearchSDK-0.99b.tar.gz
>DSLI_STATUS  cdcf (pre-alpha,developer,C,functions)
>
>?
>
>
>
>--
>andreas
>




Re: CGI::Application::MailPage, FORTH TRY

2001-01-02 Thread Andreas J. Koenig

> On Sat, 30 Dec 2000 00:03:52 -0500 (EST), Sam Tregar <[EMAIL PROTECTED]> said:

   > Maybe you should put a note in the
   > PAUSE docs that if you don't get a response in three or four months that
   > you can take that as a Yes.

That's there in CPAN/modules/04pause.html for quite some time:

  And please do consult these archive before you post a module
  proposal. The fulltext search capabilities of the archive should
  help you to find similar suggestions and contact addresses.
  [EMAIL PROTECTED] is low volume, so your search in the archive is
  quite targetted. The module list maintainers themselves are mostly
  lurkers. You need not wait for a response. Generally a lack of
  response can be taken as acceptance of the module name being
  proposed.

-- 
andreas



Re: CGI::Application::MailPage, FORTH TRY

2001-01-02 Thread Andreas J. Koenig

> On Sat, 30 Dec 2000 17:54:38 -0500 (EST), Sam Tregar <[EMAIL PROTECTED]> said:

> I think MailPage is more accurate - the module requires the the target URL
> be an HTML page that is readable on the local filesystem.  Calling it
> MailURL seems to imply that it can handle any URL anywhere on the web.
> Maybe CGI::Application::MailHTMLPage would be more accurate?

As I see no risk of a namespace clash all three suggestions sound OK
to me. MailURL would be the most generic but it should really not be
limited to static pages on the local filesystem. Maybe you will add
this functionality (it should be a matter of a few lines)?

-- 
andreas



Re: Namespace for PGP module

2001-01-02 Thread Jason

Sorry - my pause username is jhinkle (just registered, havn't uploaded
anything yet)

-j
- Original Message -
From: "Andreas J. Koenig" <[EMAIL PROTECTED]>
To: "Jason" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Tuesday, January 02, 2001 8:02 AM
Subject: Re: Namespace for PGP module


> > On Mon, 1 Jan 2001 17:43:22 -0600, "Jason" <[EMAIL PROTECTED]>
said:
>
>  > I've made a mod that works with PGP (tested with 2.6.2 on BSD and
Windows,
>  > and 6.5.8 on Windows).  It is similar to some of the existing modules
(in
>  > particular Crypt::PGP5 and PGP::Pipe) but runs on windows.  For some
reason
>  > I cannot get the existing PGP modules to work on windows - probably my
own
>  > stupidity.
>
> Are you registered as author? If so under which name? If not, would
> you please let us know you name, email, homepage, preferred userid?
>
> --
> andreas
>




New module Shockwave::Lingo

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   Shockwave::Lingo
  DSLI:i???
  description: Collection of modules for Lingo processing
  userid:  MARTIN (Martin Langhoff)
  chapterid:9 (Language_Interfaces)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 15:32:47 2001 GMT

The resulting entry will be:

Shockwave::
::Lingo   i??? Collection of modules for Lingo processing   MARTIN

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



New module Class::ObjectTemplate

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   Class::ObjectTemplate
  DSLI:bdpO
  description: Optimized template builder base class
  userid:  JASONS (Jason E. Stewart)
  chapterid:6 (Data_Type_Utilities)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 15:46:03 2001 GMT

The resulting entry will be:

Class::
::ObjectTemplate  bdpO Optimized template builder base classJASONS

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



New module Class::ObjectTemplate::DB

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   Class::ObjectTemplate::DB
  DSLI:bdpO
  description: Template base class for DB objects
  userid:  JASONS (Jason E. Stewart)
  chapterid:6 (Data_Type_Utilities)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 15:46:58 2001 GMT

The resulting entry will be:

Class::ObjectTemplate::
::DB  bdpO Template base class for DB objects   JASONS

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



New module Bio::Genex

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   Bio::Genex
  DSLI:bmpO
  description: Store, manipulate gene expression data
  userid:  JASONS (Jason E. Stewart)
  chapterid:   23 (Miscellaneous_Modules)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 15:48:20 2001 GMT

The resulting entry will be:

Bio::
::Genex   bmpO Store, manipulate gene expression data   JASONS

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



Bugfix release of Perl module: Iterator.pm v0.021

2001-01-02 Thread H.Camphausen

Hi all,

I uploaded a new version of the module "Iterator.pm" to CPAN.
Registered author ID: HCAMP
Archive name: Data-Iterator-0.021.zip
Namespace:Data::Iterator
Module version:   0.021

This is a maintainance release.

The module can be found on CPAN in the "Category>>Data Type
Utilities>>Data"-section.

If you decide to put it into the module list, this is the module's
meta information:

DSLI  Description
--
RupO  Simple iteration over complex data strucures


>From the module's readme:

Iterator.pm is an object orientated (plain) Perl module to
iterate over complex data structures (LoL, LoH, HoL, HoH etc.).

While Perl's built-in functions foreach(), each(), keys() and
values() handle just a given level of a structure, Iterator digs
deeper - handling a structure like an one-dimensional hash.

For each element of a nested data structure the symbolic name
("data path"), The Value - as is! - plus some additional
information are retrieved.

That is, Iterator provides an unified syntax for simple handling
of data sources of different types.

Iterator does not alter the referenced structure, though values
may be explicitly modified by the user.

[snipped]

mfg, Hartmut

---
CREAGEN Computerkram
Hartmut Camphausen   Fon: 06422/850527
Am kleinen Born 1Fax: 06422/850528
35287 Amöneburg  E-Mail: [EMAIL PROTECTED]



Re: New Module Bio::Genex

2001-01-02 Thread Andreas J. Koenig

> On 18 Dec 2000 16:09:58 -0700, [EMAIL PROTECTED] (Jason E. Stewart) said:

jason> I've never created a Bundle, though... How is it done?

The Bundle file is a tet file that lists the modules it wants to tie
together line by line. The format is extremely trivial, just use
another bundle file as template. 

Lines between m/^=head1\s+CONTENTS/ and m/^=(?!head1\s+CONTENTS)/ are
parsed, all the rest is ignored. A package declaration and $VERSION
should be there.

Test the bundle file by copying to your ~/.cpan/Bundle/ directory and
run a "b" command in the CPAN shell.

Ask me if questions remain.

-- 
andreas



Re: adding DBD::RDB to the module list

2001-01-02 Thread Andreas J. Koenig

> On Sun, 17 Dec 2000 10:39:17 +0100, Andreas Stiller <[EMAIL PROTECTED]> 
>said:

 > Hi,
 > some time ago i added a module DBD::RDB using the filename
 > DBD-RDB-1.00.tar.gz (today another version). Afterwards i could find it
 > in search.cpan.org using search via author but not via search by module
 > (looking for RDB,DBD::RDB or DBD-RDB). My question is: What action is
 > required to get a module indexed in search.cpan.org and/or in the module
 > list ?

Package seems to come without Makefile.PL. You seem to work on a files
system that is case-ignorant. Try to fix these two prerequisites and
let's see how much better it gets.

Regards,
-- 
andreas



Re: New module by new contributor

2001-01-02 Thread Andreas J. Koenig

> On Sat, 16 Dec 2000 00:39:10 +0100, Gilles Maire <[EMAIL PROTECTED]> said:

 > DSLI  bdpO 
 > description : Chess::Pgn - Perl extension for manipulation of chess PGN
 > format. PGN is for Portable Game
 >Notation and follow the Portable Game Notation Specification and
 > Implementation Guide revised
 >1994.03.12. You can find it at the section on
 > "/members.nbci.com/sghudson/standard.txt" in the
 >http: manpage.
 > Discussion : chess player who need to classify PGN files. The module
 > run.

What about Games::Chess::PGN. Please note that the CPAN shell already
finds:

cpan> m /chess/
Module  Chess::Pgn  (M/MA/MAIRE/Chess-Pgn-0.03.tar.gz)
Module  Games::Chess(G/GD/GDR/Games-Chess-0.003.tar.gz)
Module  Games::Chess::Referee (G/GR/GREGOR/Games-Chess-Referee-0.002.tar.gz)
3 items found


-- 
andreas



New module POE::Component::UserBase

2001-01-02 Thread Perl Authors Upload Server


The next version of the Module List will list the following module:

  modid:   POE::Component::UserBase
  DSLI:RdpO
  description: A component to manage user authentication
  userid:  JGOFF (Jeff Goff)
  chapterid:6 (Data_Type_Utilities)
  enteredby:   ANDK (Andreas J. König)
  enteredon:   Tue Jan  2 16:06:11 2001 GMT

The resulting entry will be:

POE::Component::
::UserBaseRdpO A component to manage user authenticationJGOFF

Please allow a few days until the entry will appear in the published
module list.

Parts of the data listed above can be edited interactively on the
PAUSE. See https://pause.kbx.de/pause/authenquery?ACTION=edit_mod

Thanks for registering,
The Pause Team



Re: CGI::Application::MailPage, FORTH TRY

2001-01-02 Thread Sam Tregar

On 2 Jan 2001, Andreas J. Koenig wrote:

> As I see no risk of a namespace clash all three suggestions sound OK
> to me. MailURL would be the most generic but it should really not be
> limited to static pages on the local filesystem. Maybe you will add
> this functionality (it should be a matter of a few lines)?

A few lines and a potential security hazard!  I can easily see how the
module could be used in DOS attacks and as an attack redirector if it was
willing to fetch and mail arbitrary pages on the web.  Yes, there would be
ways to mitigate the danger, but it doesn't seem warrented to me.  If many
people request that functionality - perhaps limited to the local server
name or something - I would consider it.  My inclination is to keep first
releases simple and targeted and to allow the users of the module to guide
the creaping featurism.

Thanks!

-sam









Re: CGI::Application::MailPage, FORTH TRY

2001-01-02 Thread Sam Tregar

On 2 Jan 2001, Andreas J. Koenig wrote:

> That's there in CPAN/modules/04pause.html for quite some time:

My apologies, I should have read more carefully - I didn't remember that
section.

-sam






Re: New Module Bio::Genex

2001-01-02 Thread Jason E. Stewart

"Andreas J. Koenig" <[EMAIL PROTECTED]> writes:

> > On 18 Dec 2000 16:09:58 -0700, [EMAIL PROTECTED] (Jason E. Stewart) said:
> 
> jason> I've never created a Bundle, though... How is it done?
> 
> The Bundle file is a tet file that lists the modules it wants to tie
> together line by line. The format is extremely trivial, just use
> another bundle file as template. 
> 
> Lines between m/^=head1\s+CONTENTS/ and m/^=(?!head1\s+CONTENTS)/ are
> parsed, all the rest is ignored. A package declaration and $VERSION
> should be there.
> 
> Test the bundle file by copying to your ~/.cpan/Bundle/ directory and
> run a "b" command in the CPAN shell.
> 
> Ask me if questions remain.

Hey Andreas,

Happy New Year, and thanks for setting up the modules for me.

I'm slightly embarassed by my Bundle question. I figured out the
format from looking at some example bundles, so I'm sorry to make you
write it for me.

My real question was do I need to register a specific Bundle module
with CPAN? Or will it figure it out by itself? I have never noticed
the Bundles in the module list, so I figured it's just part of CPAN's
magic.

Thanks again,
jas.



Re: Request for namespaces

2001-01-02 Thread Miko O'Sullivan

On Tue, Jan 02, 2001 at 03:05:33PM +0100, Andreas J. Koenig wrote:
> I'm sure I'm missing something very basic here: Where is the "or" in
> the array? I mean, how do "yea | ney" and "yea & ney" differ?

The or isn't in the array.  Only the individual elements of the expression
are in the array. So, for "yea | ney" you would get a two element array
consisting of "yea" and "ney".  You replace each element of the array with
a 1 or 0 depending on whetever you do with the element.  So, for "yea |
nea" you would probably want to set the first element to 1 and the second
to 0.  Then you call the eval method to get the final evaluation of the
expression.  

See the examples in the docs.

:-)

-miko



Registration on PAUSE, new module AI::Gene::Sequence

2001-01-02 Thread Alex Gough

Hi,

I've been doing some genetic programming with perl recently but
didn't see any modules which help with the drudgery of splicing
things in and out of arrays in twenty slightly different ways
so have written one.  These modules offer base classes which
implement a range of mutations suitable for any sequential
genes.  One (Simple) just ensures that sensible arguments are
passed to each method while the other (Sequence) also provides
a means to enforce a gene grammar.

This has been discussed fairly widely, with requests for comments
on usenet, and the perlai mailing list.  I've had a couple of
emails expressing support and some warnings about the problems
associated with genetic algorithms in perl (speed wise) but for
some problem areas (eg. music composition) these become less
of a problem, so these modules should be useful to someone even
if not in any (computationally) serious context.


Me:
Name: Alex Gough
Email:[EMAIL PROTECTED]
Preferred id: AJGOUGH
Homepage: http://users.ox.ac.uk/~shug0957/

The modules:

NameDSLI  Description  Info
--     -
AI::Gene::
::Sequence  RdpO  Base class of mutation methods +gene grammar  ---
::SimpleRdpO  Base class of mutation methods---

--
Alex Gough <[EMAIL PROTECTED]>
http://users.ox.ac.uk/~shug0957/




Download of Perl 5.003-005

2001-01-02 Thread Renee Mitchell

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue128;}
\viewkind4\uc1\pard\f0\fs20 To whom it may concern:\par
\par
I have been trying to download perl 5.003-005 and www.cpan.org and once I receive the tar file, my virus detection detects a virus and tells me that it cannot be cleaned and advices me to delete it.  We are implementing a Oracle Archiver and this is critical in implementing.  Can you provide me with another copy of perl 5.003-005 or can you suggest a way for me to get a clean copy.  This is urgent and a prompt response is appreciated.\par
\par
Thank you,\par
\par
\pard\cf1\b\i Renee Mitchell\par
Cap Gemini Ernst & Young\par
SA - Consultant @WDC Lake Forest, CA\par
Contact : 949-672-7879\par
[EMAIL PROTECTED]\par
\cf0\b0\i0\par
\pard\par
}



Registration of BEHROOZI and CGI::SecureState

2001-01-02 Thread Peter Behroozi

Greetings,
This is my first entry to PAUSE, so I am requesting both a namespace 
(CGI::SecureState) and a PAUSE account (BEHROOZI).  The module that I 
have created is a drop-in replacement for CGI::Persistent that stores 
the CGI parameters in an encrypted file on the server.  Due to several 
shortcomings of CGI::Persistent (see below), the changes I made involved 
a complete rewrite (Persistence::Object::Simple was removed, for 
instance), so integration with CGI::Persistent was out of the question. 
  I have checked both CPAN and archives of [EMAIL PROTECTED] for a 
similar module, but have turned up nothing.  While I cannot provide a 
location where discussion has occurred on the topic, I have been running 
the code unchanged on the Price Laboratory School website 
(www.pls.uni.edu) under Apache::Registry for more than a month with no 
reported bugs.

Peter


The requirements:
Name: Peter Behroozi
Email: [EMAIL PROTECTED]
Homepage: None.
ID: BEHROOZI
Description:  CGI::SecureState (or whatever it ends up as) is a drop-in 
replacement for CGI::Persistent that corrects the three mainflaws of 
CGI::Persistent, e.g. failure to work with Perl's taint mode, not 
encrypting user data, and a lack of association between the user's 
data 
file and their computer.

DSLI:
Name   DSLI  DescriptionInfo
-    -- -
SecureStateadpO  Securely stores CGI parameters BEHROOZI




request namespace for HTML::FormTemplate

2001-01-02 Thread Darren Duncan

I would like to register the namespace for the following module:

HTML::FormTemplate - adpO - Store definition and make persist forms, reports.

One sentence overview: Perl module that maintains a predefined html 
input form definition with which it can generate form html, complete 
with persistant and error-checked user input, as well as formatted 
reports of the user input in html or plain text format (for emails).

Note that my form definitions include the visible prompt/question 
text that the user sees, as well as optional help and error text. 
This is useful so that generated forms and reports are consistent 
with each other.

My authorname is DUNCAND.

This module is my largest and most feature-filled to date, and is 
currently on CPAN under the temporary name of HTML::FormMaker; it has 
received several improvements since then.  Below I have printed some 
of the POD for the updated version, although it may change some more.

I chose the name HTML::FormTemplate because my module essentially 
acts as a template, storing definitions in the form as a list of 
hashes that are then used to make both forms and reports.  And that's 
just the start of why the name fits so well.  It is not a template in 
the way of being finished HTML that has variable substitution done on 
it, but the definition hashes represent html structures, so it is 
effectively the same thing.

I have scoured CPAN and the module list especially hard for similar 
modules, and while some may give the first impression of being the 
same, they are all very different.  The next few paragraphs show my 
analysis of existing modules and how mine is different:

The majority of modules that deal with forms are either in the 
business of parsing existing html, or they do various conversions 
like converting to XML or text, or they work with Request and 
Response objects.  Mine focuses on HTML creation from scratch only, 
and does not parse anything; also, it doesn't do any HTML specialties 
besides the form related stuff (although it subclasses 
HTML::EasyTags).

 From reading the POD, it seems that "CGI::QuickForm" has the most in 
common with mine.  That is, you can define all the form fields with 
one method call.  These field definitions are compatible with those 
by CGI.pm, and it also extends those features with extra attributes 
for the field.  It can generate both initial forms and subsequent 
forms with persistant user input.  However, the module differs from 
mine in these ways: it is functional while mine is object; it takes 
care of user input and output, whereas mine expects the calling code 
to provide and to print (I focus on HTML only); it has you define 
your form in the same method call as generating the html, whereas 
with mine the form definition and html generation are separate 
methods, so you can have the choice of generating the whole form at 
once or one field at a time (called by name); mine generates input 
reports on demand and the other doesn't.

HTML::FillInForm parses existing form html to insert persistant user 
input (it subclasses HTML::Parser); mine does not start with any html 
but a hash of field attributes.

CGI.pm creates form html in the same method call as defining the field, and
also takes care of getting user input.  Mine provides the option to 
generate html with the same function as defining it, one field at a 
time, but it also provides two ways to generate on separate method 
calls from definition.

HTML::StickyForms has an interface like CGI.pm for form field making, 
but it is a front that uses either CGI.pm or mod_perl in the back end 
to get persistant values; it appears simple on the surface.

CGI::Form and HTML::Form are old and have no documentation that I 
could find, so I don't know what they do; most likely not similar.

So I hope that I have made my case that I have a very unique offering.

Thanks in advance,

// Darren Duncan

---

NAME

HTML::FormTemplate - Store definition and make persist forms, reports.

DEPENDENCIES

Perl Version

5.004

Standard Modules

I

Nonstandard Modules

CGI::MultiValuedHash
HTML::EasyTags

SYNOPSIS

use strict;

use HTML::FormTemplate;

my @definitions = (
   {
  visible_title => "What's your name?",
  type => 'textfield',
  name => 'name',
   }, {
  visible_title => "What's the combination?",
  type => 'checkbox_group',
  name => 'words',
  'values' => ['eenie', 'meenie', 'minie', 'moe'],
  default => ['eenie', 'minie'],
   }, {
  visible_title => "What's your favorite colour?",
  type => 'popup_menu',
  name => 'color',
  'values' => ['red', 'green', 'blue', 'chartreuse'],
   }, {
  type => 'submit',
   },
);

my $query_string = '';
if( $ENV{'REQUEST_METHOD'} =~ /^(GET|HEAD)$/ ) {
   $query_string = $ENV{'QUERY_STRING'};
} else {
   read( STDIN, $query_strin