Greetings, I am in the position where I have developed a dozen or more Perl modules for my own use, but I had made them in a generic fashion such that they can be reused in a variety of fashions, and by other people. It seemed that CPAN was the best forum to distribute my work (hundreds of hours worth) so that it could be used and enjoyed by the widest number of people. And so, by the numbers... 1. My Name: Darren Duncan 2. E-mail: [EMAIL PROTECTED] 3. Homepage: www.DarrenDuncan.net 4. preferred id: DUNCAND 5. What I offer: My modules were developed originally to implement (generate/compile) an unlimited number of unrelated dynamic web-sites at once, but they can be used for various other purposes as well. They are all Perl 5 objects and require 5.004 or later. An overview of the current features for the set of modules is at my home page. I have two working examples of the set in use as well, at both my home page and at www.chronology.net. The intent here was to maximize code reuse such that each instance of a web site needs very little of its own Perl code to differentiate it from others. As such, each "site" consists mostly of a set of hierarchically organized data files, such as the htmlized text for each page, settings/configuration files that say things like what questions are asked in forms such as guestbooks, and log files for the likes of guest books or usage count data. Modules are designed such that their behaviour is customized by giving them different data or "preferences", rather than by changing the values of hardcoded constants. Everything is designed with an extensible architecture so third parties can add features to it. My ultimate goal is that website owners can update their sites using their web browsers over a user-friendly interface. Half of my modules are more lower-level and generic, and can be used in any projects with little or no resemblence to my own uses of them. The other half are higher-level and would be harder to use in ways other than what they were developed for. Either way, the modules are designed to be robust, and I have descriptively named code as a rule. It turns out that some of these modules can accomplish almost anything that people would have otherwise used CGI.pm for, making the latter redundant in those cases. Now, you may ask, why would I reinvent much of what the popular and time-tested CGI.pm does rather than just using it? The answer is that I had used CGI.pm quite a lot historically (and liked it), but found the module to be too complicated for my liking and incapable of some of the things I want to do at a low-level. And Lincoln did say in the CGI docs that he wanted people to use smaller and more focused modules instead. My implementation is very different than his, and in some places mine accomplishes a lot more. I'm following the UNIX philosophy that says to have many small pieces each doing their job well rather than one that tries to do everything. Of course, I'm not trying to replace CGI, but rather complement it with new abilities that are Perl-5-object-clean. We both have our specialties and limits. Partly as a homage to Lincoln having done all this first, I have made as much as possible of my similarly-themed methods have backwards-compatible names, syntax, and behaviour as methods in CGI so that they are easy for people to adapt. 6. Module descriptions: Note that all these module names are temporary, until more suitable and integrated names can be discussed. During development, I have put them all in the "DDuncan::" folder such that they wouldn't conflict with any real name spaces. What I give below are *possible* final names, which are still similar enough to the development names (on my site) to be recognizable. Everything shown here in a WPM:: subdirectory has a fairly specific use in mind (making part of a web page) and are put there so not to pollute 'standard' namespaces. All betas have complete POD documentation, the others do not. Name DSLI Description ---------------------- ---- -------------------------------------------- Hash::OfArrays (HoA) - bdpO - data (text,bin) store/parse/url-encode, subset IO::SequentialFile - bdpO - store prefs,logs from HoAs/hash as k=v text file Method::ParamParser - bdpO - complex parameter parsing for subclass methods HTML::TagMaker - bdpO - make single,groups of HTML tags, head/footers HTML::FormMaker - bdpO - predefined persistant forms, reports, validate CGI::WebPageContent - bdpO - store/assemble web page parts, search and replace CGI::WPM::SiteGlobals - cdpO - stores/parses web site globals, utils, user input CGI::WPM::WebPageMaker - adpO - defines API for WPM modules, stores local prefs CGI::WPM::MultiPage - adpO - wpm resolves nav in page hierarchy, makes menus CGI::WPM::Static - adpO - wpm for displaying static html pages CGI::WPM::MailForm - adpO - wpm for implementing private e-mail forms CGI::WPM::GuestBook - adpO - wpm for implementing a complete guest book CGI::WPM::SegTextDoc - adpO - wpm displays static single/multipart text pages CGI::WPM::MessageBoard - idpO - wpm implements a threaded discussion board CGI::WPM::Password - idpO - wpm for securing parts of a site with a password CGI::WPM::FormMaker - idpO - wpm to make form defin used with HTML::FormMaker IO::EventCountFile - cdpO - for storing event counts and dates (usage) CGI::WPM::SiteUsage - idpO - track site usage details, log, e-mail to owner CGI::WPM::SiteManager - cdpf - the "main program" that calls everything else Currently all documentation for a module is found inside that module, including its dependencies and version history. Any "test" programs that I have are included in the module documentation as the "synopsis" section. I don't know how to encode .tar or .gz archives on a Mac, so modules come as plain text or in Aladdin's Stuffit format. All modules have the standard perl copyrights that say people can use and modify them for free, but that I retain all "rights" to the modules. 7. I had posted announcements for my modules to a variety of local groups and to Comp::Lang::Perl::Modules as well. While this caused me to get a few hundred page views on my site, where my modules are available, no one actually wrote me to discuss things. Given the intense time contstraints I am under, I can't take too much time to have lengthy discussions about needs and wants. However, I think that I have a number of unique products with capabilities that nothing else I saw on the modules list have. I hope we will be able to work out details smoothly and that my modules can be useful to a great number of people. Please reply when you have read this, so I know you received it. Good days, // Darren Duncan