The Perl 5 Module List Maintained by Tim Bunce
---------------------- <Tim....@ig.co.uk>
$Revision: 2.2 $
Contents
Introduction
Playing Your Part
How To Get an More Recent Copy
Editorial Information
Part 1 - Modules: Creation, Use and Abuse
1) Perl 5 Module Terminology
2) Guidelines for Module Creation
3) Guidelines for Converting Perl 4 Library Scripts into Modules
4) Guidelines for Reusing Application Code
Part 2 - The Perl 5 Module List
1) Module Listing Format
2) Perl Core Modules and Perl Language Extensions
3) Development Support
4) Operating System Interfaces
5) Networking, Device Control (modems) and InterProcess Communication
6) Data Types and Data Type Utilities
7) Database Interfaces
8) User Interfaces
9) Interfaces to / Emulations of Other Programming Languages
10) File Names, File Systems, File Locking and File Handles
11) Text Processing, Parsing and Searching
12) Option, Augument and Parameter Processing
13) Internationalization and Locale
14) Security and Encryption
15) World Wide Web, HTTP and CGI
16) Server and Daemon Utilities
17) Miscellaneous Interfaces to Other Software Systems
Part 3 - Who's Who
1) Information / Contact Reference Details
Key: '+' indicates a new item or section,
'!' indicates a changed item or section.
=======================================================================
Introduction
This document is a semi-formal list of Perl 5 Modules. The Perl 4
concept of packages has been extended in Perl 5 and a new standardised
form of reusable software component has been defined: the Module.
Perl 5 Modules typically conform to certain guidelines which make them
easier to use, reuse, integrate and extend.
This list will posted to comp.lang.perl on a semi-regular basis.
It has two key aims:
1. FOR DEVELOPERS: To change duplication of effort into cooperation.
2. FOR USERS: To quickly locate existing software which can be reused.
This list includes the Perl 5 standard modules, other completed modules,
work-in-progress modules and would-be-nice-to-have ideas for modules.
It also includes guidelines for those wishing to create new modules
including how to name them.
Playing Your Part
Perl is a huge collaborative effort. Everyone who uses perl is
benefiting from the contributions of many hundreds, maybe thousands, of
people. How much time has perl saved you since you started using it?
Do you have any modules you could share with others? For example, you
may have some perl4 scripts from which generally useful, and resuable,
modules could be extracted. There may be many people who would find
your work very useful. Please play you part and contribute to the Perl
community where you can. [ end of sermon :-]
Help save the world! Please submit new entries and updates to me so I
can keep this list up-to-date. I would prefer changes to be submitted
as context diff's (or just plain diff if your diff does not have a
context diff option) by email to Tim....@ig.co.uk. No tabs please.
How To Get a More Recent Copy
At the time of writing, this Module List is posted manually by me to
comp.lang.perl on a semi-regular basis (approximately monthly) with a
long expiry time (over a month). The first place to look for a more
recent copy is therefore you own Usenet comp.lang.perl spool area.
I am currently seeking approval for regular posting to *.answers and
archiving on rtmf.mit.edu.
You should be able to get a copy from one of these places:
ftp://ftp.icnet.uk/icrf-public/biu/perlmods/modules.list
(please let me know about any others)
Editorial Information
This document is Copyright (c) 1995 by Tim Bunce. All rights reservered.
Permission to distribute this document, in full or part, via electronic
means (emailed, posted or archived) or printed copy is granted
providing that no charges are involved, reasonable attempt is made to
use the most current version, and all credits and copyright notices are
retained. Requests for other distribution rights, including
incorporation in commercial products, such as books, magazine articles,
or CD-ROMs should be made to Tim....@ig.co.uk.
Disclaimer: The content of this document is simply a collection of
information gathered from many sources with little or no checking.
There are NO warranties with regard to this information or its use.
=======================================================================
Part 1 - Modules: Creation, Use and Abuse
=========================================
1) Perl 5 Module Terminology (a larry-terminology-mini-tutorial)
-------------------------
Perl 5 implements a class using a package, but the presence of a
package doesn't imply the presence of a class. A package is just a
namespace. A class is a package that provides subroutines that can be
used as methods. A method is just a subroutine that expects, as its
first argument, either the name of a package (for "static" methods),
or a reference to something (for "virtual" methods).
A module is a file that (by convention) provides a class of the same
name (sans the .pm), plus an import method in that class that can be
called to fetch exported symbols. This module may implement some of
its methods by loading dynamic C or C++ objects, but that should be
totally transparent to the user of the module. Likewise, the module
might set up an AUTOLOAD function to slurp in subroutine definitions on
demand, but this is also transparent. Only the .pm file is required to
exist.
2) Guidelines for Module Creation
------------------------------
2.1 Do similar modules already exist in some form?
If so, please try to reuse the exisiting modules either in whole or
by inheriting useful features into a new class. If this is not
practical try to get together with the module authors to work on
extending or enhancing the functionality of the exisiting modules.
A perfect example is the plethora of packages in perl4 for dealing
with command line options.
If you are writing a module to expand an already exisiting set of
modules, please coordinate with the author of the package. It
helps if you follow the same naming scheme and module interaction
scheme as the original author.
2.2 Try to design the new module to be easy to extend.
Use blessed references. Inherit methods from other modules. Use the
two argument form of bless to bless into the class name given as the
first parameter of the constructor, e.g., bless {}, $_[0];
Avoid $r->Class::func() where using @ISA=qw(... Class ...) and
$r->func() would work (see perlbot man page for more details).
Pass arrays to functions as references so more parameters can be added
later (it's also faster). Split large functions into smaller more
flexible ones. Convert functions into methods. Use autosplit so
little used or newly added functions won't be a burden to programs
which don't use them.
2.3 Select what to export.
Do NOT export method names!
Do NOT export anything else by default without a good reason!
Exports pollute the namespace of the module user. If you must
export try to use @EXPORT_OK in preference to @EXPORT and avoid
short or common names to reduce the risk of name clashes.
Generally anything not exported is still accessible from outside the
module using the ModuleName::item_name (or $blessed_ref->method)
syntax. By convention you can use a leading underscore on names to
informally indicate that they are 'internal' and not for public use.
(It is actually possible to get private functions by saying:
my $subref = sub { ... }; &$subref; But there's no way to call that
directly as a method, since a method must have a name in the symbol
table.)
As a general rule, if the module is trying to be object oriented
then export nothing. If it's just a collection of functions then
@EXPORT_OK anything but use @EXPORT with caution.
2.4 Select a name for the module.
This name should be as descriptive, accurate and complete as possible.
Avoid any risk of ambiguity. Always try to use two or more whole words.
Please use nested module names to group or categorise a module.
Having 57 modules all called Sort will not make life easy for anyone
(though having 23 called Sort::Quick is only marginally better :-).
Imagine someone trying to install your module alongside many others.
If in any doubt ask for suggestions in comp.lang.perl.
If you are developing a suite of related modules/classes it's good
practice to use nested classes with a common prefix as this will
avoid namespace clashes. For example: Xyz::Control, Xyz::View,
Xyz::Model etc. Use the modules in this list as a naming guide.
If adding a new module to a set, follow the original author's
standards for naming modules and the interface to methods in
those modules.
To be portable each component of a module name should be limited to
11 characters. If it might be used on DOS then try to ensure each is
unique in the first 8 characters. Nested modules make this easier.
2.5 README and other Additional Files.
It's well known that software developers usually fully document the
software they write. If, however, the world is in urgent need of
your software and there is not enough time to write the full
documentation please at least provide a README file containing:
A description of the module/package/extension etc.
A copyright notice - see below.
Prerequisites - what else you may need to have.
How to build it - possible changes to Makefile.PL etc.
How to install it.
Recent changes in this release, especially incompatibilities
Changes / enhancements you plan to make in the future.
If the README file seems to be getting too large you may wish to
split out some of the sections into separate files: INSTALL,
Copying, ToDo etc.
2.6 Adding a Copyright Notice.
How you choose to licence your work is a personal decision.
The general mechanism is to assert your Copyright and then make
a declaration of how others may copy/use/modify your work.
Perl, for example, is supplied with two types of licence: The GNU
GPL and The Artistic License (see the files README, Copying and
Artistic). Larry has good reasons for NOT just using the GNU GPL.
My personal recommendation, out of respect for Larry, Perl and the
perl community at large is to simply state something like:
Copyright (c) 1995 Your Name. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
This statement should at least appear in the README file. You may
also wish to include it in a Copying file and your source files.
2.7 Give the module a version/issue/release number.
Add a function or method to retrieve the number. Use the number in
announcements and archive file names when releasing the module
(ModuleName-1.02.tar.Z). See ExtUtils::MakeMaker.pm for details.
It's a good idea to use two digits after the decimal point.
2.8 How to release and distribute a module.
It is good idea to post an announcement of the availablity of your
module (or the module itself if small) to the comp.lang.perl
Usenet newsgroup. This will at least ensure very wide once-off
distribution.
If possible you should place the module into a major ftp archive and
include details of it's location in your announcement.
Some notes about ftp archives: Please use a long descriptive file
name which includes the version number. Most incoming directories
will not be readable/listable, i.e., you won't be able to see your
file after uploading it. Send your email notification message as
soon as possible after uploading else your file may get deleted
automatically. Allow time for the file to be processed and/or
check the file has been processed before announcing its location.
2.9 Take care when changing a released module.
Always strive to remain compatible with previous released versions
(see 2.2 above) Otherwise try to add a mechanism to revert to the
old behaviour.
3) Guidelines for Converting Perl 4 Library Scripts into Modules
-------------------------------------------------------------
3.1 There is no requirement to convert anything.
If it ain't broke, don't fix it! Perl 4 library scripts should
continue to work with no problems. You may need to make some minor
changes (like escaping non-array @'s in double quoted strings) but
there is no need to convert a .pl file into a Module for just that.
3.2 Consider the implications.
All the perl applications which make use of the script will need to
be changed (slightly) if the script is converted into a module. Is
it worth it unless you plan to make other changes at the same time?
3.3 Make the most of the opportunity.
If you are going to convert the script to a module you can use the
opportunity to redesign the interface. The 'Guidelines for Module
Creation' above include many of the issues you should consider.
3.4 The pl2pm utility will get you started.
This utility will read *.pl files (given as parameters) and write
corresponding *.pm files. The pl2pm utilities does the following:
- Adds the standard Module prologue lines
- Converts package specifiers from ' to ::
- Converts die(...) to croak(...)
- Several other minor changes
Being a mechanical process pl2pm is not bullet proof. The converted
code will need careful checking, especially any package statements.
Don't delete the original .pl file till the new .pm one works!
4) Guidelines for Reusing Application Code
---------------------------------------
4.1 Complete applications rarely belong in the Perl Module Library.
4.2 Many applications contain some perl code which could be reused.
Help save the world! Share your code in a form that makes it easy
to reuse.
4.3 Break-out the reusable code into one or more separate module files.
4.4 Take the opportunity to reconsider and redesign the interfaces.
4.5 In some cases the 'application' can then be reduced to a small
fragment of code built ontop of the resuable modules. In these cases
the application could invoked as:
perl -e 'use Module::Name; method(@ARGV)' ...
or perl -mModule::Name ... (in perl5.001?)
=======================================================================
Part 2 - The Perl 5 Module List
===============================
The remainder of this document is divided up into sections. Each
section deals with a particular topic and lists all known modules
related to that topic. Modules are only listed in one section so
check all sections that might related to your particular needs.
All the information corresponds to the latest updates I have received.
I don't record the version number or release dates of the listed
Modules. Nor do I record the locations of these Modules. Consult the
contact, try the usual perl archive sites or ask in comp.lang.perl.
Please do *not* ask me directly, I simply don't have the time. Sorry.
1) Module Listing Format
Each Module listing is very short. The main goal is to simply publish
the existence of the modules, or ideas for modules, and enough contact
information for you to find out more. Each listing includes some
characters which convey basic status information.
For example:
Name DSLI Description Info
------------- ---- -------------------------------------------- -----
Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI
Where the 'DSLI' characters have the following meanings:
D - Development Stage (no implied timescale!):
i - Idea, listed to gain consensus or as a placeholder
c - under construction but pre-alpha (not yet released)
a/b - Alpha/Beta testing
R - Released
M - Mature (no rigourous definition)
S - Standard, supplied with Perl 5
S - Support Level:
m - Mailing-list
d - Developer
u - Usenet newsgroup comp.lang.perl
n - None known, try comp.lang.perl
L - Language Used:
p - Perl-only, no compiler needed, should be platform independent
c - C and perl, a C compiler will be needed
+ - C++ and perl, a C++ compiler will be needed
o - perl and another language other than C or C+
I - Interface Style
f - plain Functions, no references used
r - some use of unblessed References or ties
O - Object oriented using blessed references and/or inheritance
Where letters are missing they can usually be inferred from the
others. For example 'i' implies 'id', 'S' implies 'Su'.
The Info column gives a contact reference 'tag'. Lookup this tag in the
"Information / Contact Reference Details" section in Pert 3 of this
document. If no contact is given always try asking in comp.lang.perl.
Most Modules are nested in categories such as IPC::Open2 and IPC::Open3.
These are shown as 'IPC::' on one line then each module listed below
with a '::' prefix.
Ideas For Adoption
Modules listed as in the 'i' Development Stage with no contact
reference are ideas without an owner. Feel free to 'adopt' these but
please let me know so that I can update the list and thus inform anyone
else who might be interested. Adoption simply means that you either
intend to implement the module or would like to work closely with
anyone else who might want to implement it.
Similarly, if an idea that interests you has been adopted by someone
please contect them so you can share ideas. Just because an idea has
been adopted does NOT imply that it's going to be implemented. Waiting
silently in the hope that the Module will appear one day is unlikely to
be fruitful!
_______________________________________________________________________
2) Perl Core Modules and Perl Language Extensions
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
CORE Suc Internal base class for native functions
UNIVERSAL Suc Internal universal base-class
AutoLoader Sup Automatic perl module method loader
DynaLoader Suc Dynamic loader for shared libraries
Exporter Sup Implements default import method for modules
Carp Sup Throw exceptions outside current package
Config Sup Stores details of perl build configuration
English Sup Defines English names for special variables
strict Sup Controls averments (similar to pragmas)
integer Sup Controls float vs. integer arithmetic
less Sup Controls optimisations: 'use less memory;'
subs Sup "use subs qw(x y)" is short for "sub x; sub y;"
sigtrap Sup For trapping an abort and giving a traceback
TieHash Sup Base class for implementing tied hashes
Multithreading for Perl:
Plthread i Multithreading at Perl level (not O/S level) MICB
_______________________________________________________________________
3) Development Support
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
AutoSplit Supf Splits modules into files for AutoLoader
Benchmark Supf Easy way to time fragments of perl code
AddINC adpf Easy way to manipulate @INC via use GBARR
DoWhatIWant i Does what you want without even asking
ExtUtils::
::MakeMaker SupO Writes Makefiles for extensions
::DynaGlue i Utilities/glue code for C<->Perl interfaces
Test::
::Harness Sup Executes perl-style tests
Devel::
::DProf bdcf Execution profiler (excellent) DMR
::Peek adcf Interface to internal sv_dump and sv_peek
::Debug i Function and class debugging support
_______________________________________________________________________
4) Operating System Interfaces
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
POSIX SupO An interface to most (all?) of POSIX.1
Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI
Ioctl adcf Defines ioctl() constants KJALB
Errno i Constants from <errno.h> EACCES, ENOENT etc JHI
BSD::
::Remote adpf getrusage(), s/getrlimit(), s/getpriority() JHI
::HostIdent adpf s/gethostname(), s/gethostid() JHI
Sys::
::Hostname Supf Implements a portable hostname function
::Syslog Supf Provides same functionality as BSD syslog
::AlarmCall Rupf Timeout on any sub. Allows nested alarms JACKS
MSDOS::
::SysCalls adcf MSDOS interface (interrupts, port I/O) DMO
SGI::
::SysCalls cdcf Interface to SGI-specific system calls AMOSS
::GL adcr Interface to SGI's Iris GL library AMOSS
::FM adcr Interface to SGI's Font Management library AMOSS
VMS::
::SysCalls i Interface to VMS-specific system calls CBAIL
::Filespec Sdcf Interconvert VMS and Unix file name syntax CBAIL
_______________________________________________________________________
5) Networking, Device Control (modems) and InterProcess Communication
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Socket Sucf Defines all socket-related constants
Net::
::Ping Supf Implements TCP/IP ping (currently only echo) PMQS
::IRC i Internet Relay Chat interface MRG
::FTP idpf Implements File Transfer Protocol interface GSPAF
::Telnet i
::SOCKS i TCP/IP access through firewalls using SOCKS WSCOT
::NIS cdcO Interface to Sun's NIS RIK
::NISPlus cdcO Interface to Sun's NIS+ RIK
IPC::
::Open2 Supf
::Open3 Supf
::Chat2 ? Out-of-service during refit!
::SysV i shared memory, semaphores, messages etc JHI
::Mmap adcf Interface to Unix's mmap() shared memory MICB
RPC::
::ONC i Open Network Computing (Sun) RPC interface
::DCE i Distributed Computing Environment (OSF) RPCs
Chat2 adpf Basic port of chat2.pl (see also IPC::Chat2) GBARR
Proxy:: adpO Transport-independent remote processing MICB
::Tk aucO Tk transport class for Proxy (part of Tk) MICB
ToolTalk adcr Interface to the ToolTalk messaging service MARCP
_______________________________________________________________________
6) Data Types and Data Type Utilities (see also Database Interfaces)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Math::
::BigInt SupO Arbitrary size integer math package MB
::BigFloat ?
::BigRat ?
::Complex adpO Complex number data type DNAD
::IEEE i Interface to ANSI/IEEE Std 754-1985 funcs
::Pari adcf Interface to the PARI library ILYAZ
Array::
::Vec idp Implement array using vec() LWALL
::Substr idp Implement array using substr() LWALL
::Virtual idp Implement array using a file LWALL
Set::
::Scalar adpO Implement Set of scalars (inc references) JHI
Date::
::GetDate adcf Yacc based free-format date parser in C TOMC
::GetDate adpf Byacc based free-format date parser in Perl GBARR
::CTime adpf Updated ctime.pl with mods for timezones GBARR
::Time idpO Lightweight normalised datetime data type TPB
::Interval idpO Lightweight normalised interval data type TPB
Time::
::Local Supf Implements timelocal() and timegm()
::Time adcf High resolution timers and time-of-day JHI
Tie::
::SubstrHash RdpO Very compact hash stored in a string LWALL
::ShiftSplice i Defines shift et al in terms of splice LWALL
::Mem adcO Bind perl variables to memory addresses PMQS
::Quick i Simple way to create ties TPB
::Watch i Uses Tie::Quick to watch a variable TPB
Class::
::Behavior adpf General behavior methods for classes JACKS
::Eroot bdpO Eternal Root - Object persistence DMR
::Template bdpr Struct/member template builder DMR
Stats::
::Basic bdpO Basic statistical methods JKAST
_______________________________________________________________________
7) Database Interfaces (see also Data Types)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
DBI amcO Generic Database Interface (see DBD modules) DBPRL
DBD::
::Oracle cmcO Oracle Driver for DBI TPB
::Ingres cmcO Ingres Driver for DBI TPB
::Msql cdcO Msql Driver for DBI ANDK
::DB2 cdcO DB2 Driver for DBI MHM
::Sybase idcO Sybase Driver for DBI MEWP
Oraperl cmpf Oraperl emulation interface for DBD::Oracle TPB
Ingperl cmpf Ingperl emulation interface for DBD::Ingres TPB
Sybase::
::DBlib adcO Sybase DBlibrary interface MEWP
::Sybperl adcf sybperl 1.0xx compatibility module MEWP
::CTlib cdcO Sybase CTlibrary intgerface MEWP
Msql adcf Mini-SQL, a light weight SQL database ANDK
Tied Hash File Interfaces:
NDBM_File Suc Tie interface to NDBM files
DB_File Suc Tie interface to DB files PMQS
GDBM_File Suc Tie interface to GDBM files
SDBM_File Suc Tie interface to SDBM files
ODBM_File Suc Tie interface to ODBM files
AnyDBM_File Sup Uses first available *_File module above
DBZ_File iuc Tie interface to dbz files. IANPX
AsciiDB adp Generic text database parsing MICB
Stanza adp Text format database used by OSF and IBM JHI
DTREE cdcf Interface to Faircom DTREE multikey isam db JWAT
_______________________________________________________________________
8) User Interfaces (character and graphical)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Term::
::Cap Supf Basic termcap: Tgetent, Tputs, Tgoto
::Info adpf Terminfo interface (currently just Tput) KJALB
::Complete Supf Tab word completion using stty raw
::Readline adc GNU Readline, history and completion KJALB
::Control idpf Basic curses-type screen controls (gotxy) KJALB
::Read cdcf Terminal reading functions (getkey) KJALB
::Pseudo i Pseudo terminal (pty) functions
Major X-Windows User Interface Tools:
Tk bmcO Object oriented version of Tk v4 TKML
Tk adcO (old) 'tkperl5' Tk widgets ala Tk/Tcl MICB
Sx adc Simple Athena widget interface FMC
Motif cdcf Simple Motif and Xt interface ERICA
Wcl i Interface to the Wigit Creation Library TOMH
Major Character User Interface Tools:
Curses adcO Character screen handling and windowing WPS
Cws i Curses Windowing System (OO widgets etc.) MICB
_______________________________________________________________________
9) Interfaces to / Emulations of Other Programming Languages
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Tcl RdcO Complete access to Tcl MICB
::Tk RdcO Complete access to Tk *via Tcl* MICB
Language::
::Prolog adpO An implementation of Prolog JACKS
SICStus adcO Interface to SICStus Prolog Runtime CBAIL
_______________________________________________________________________
10) File Names, File Systems, File Locking and File Handles
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
File::
::Path Supf File path and name utilities
::Basename Supf Return basename of a filename
::CheckTree Supf Check file/dir tree against a specification
::Find Supf Call func for every item in a directory tree
::Lock adcf File locking using flock() and lockf() JHI
::KGlob cdcf Filename globing (ksh style) TYEMQ
::Attrib idpO Get/set file attributes (stat) TYEMQ
Cwd Supf Current working directory functions
FileHandle SupO File handle manipulation functions
_______________________________________________________________________
11) Text Processing, Parsing and Searching
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Text::
::Abbrev Supf Builds hash of all possible abbreviations
::ParseWords Supf Parse strings containing shell-style quoting
::Soundex Supf Convert a string to a soundex value
::TeX cdpO TeX typesetting language input parser ILYAZ
Search::
::Dict Supf Search a dictionary ordered text file
SGML::
::Element cdpO Build a SGML element structure tree LSTAF
::SP cd+O Interface to James Clark's Sp SGML parser DFD
_______________________________________________________________________
12) Option, Augument and Parameter Processing
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Getopt::
::Std Supf Implements basic getopt and getopts
::Long Supf Advanced option handling JV
::Gnu adcf GNU form of long option handling WSCOT
Usage Rupr Type and range checking on subroutine args JACKS
_______________________________________________________________________
13) Internationalization and Locale
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
I18N::
::Collate bdpr Locale based comparisons JHI
::WideMulti i Wide and multibyte character string JHI
_______________________________________________________________________
14) Security and Encryption
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
DES adcf Interface to DES encryption (libdes) EAYNG
Des adcf Interface to DES encryption (libdes) MICB
MD5 Interface to MD5 message digest algorithm NWINT
Kerberos adcf Interface to Kerberos IV authentication MICB
_______________________________________________________________________
15) World Wide Web, HTTP and CGI (see also Text Processing section)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
CGI::
::Environ cdp Use environment variables from clients MGH
::MakeForm i Form tools for interactive pages MGH
WWW::
::HTTP cdpO Implement HyperText Transfer Protocol LWWWP
::URL cdpf Manipulate Uniform Resource Locators LWWWP
::Log i Parse Common Log File Format
::Robots i Parse /robots.txt file
_______________________________________________________________________
16) Server and Daemon Utilities
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Server:: Hierarchy of generic server classes:
::Configs adpO Configuration classes for servers JACKS
::Initialize adpO Initialization for all types of servers JACKS
::Echo adpO Base classes for 'instant' servers JACKS
::Inet adpO Internet servers and socket handling objects JACKS
::FileQueue adpO File (and mailbox) handling servers JACKS
::Mail adpO Mail handling servers and functions JACKS
_______________________________________________________________________
17) Miscellaneous Interfaces to Other Software Systems
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Mail::
::SMTP i Protocol support including expn
::RFC822 adpf Functions for RFC822 address manipulations GBARR
::MH adcr MH mail interface MRG
::Send i Simple interface for sending mail
News::
::NNTPClient adpO Support for clients of NNTP servers RVA
WAIS Rdcf Interface to the freeWAIS-sf libraries ULPFR
Pcap i An interface for LBL's packet capture lib AMOSS
Nexus cdcO Interface to Nexus (threads/ipc/processes) RDO
=======================================================================
Part 3 - Who's Who
==================
1) Information / Contact Reference Details (in alphabetical order)
Ref Contact Details
----- ------------------------------------------------------
AMOSS Amos Shapira <am...@cs.huji.ac.il>
ANDK Andreas Koenig <k...@otto.ww.TU-Berlin.DE>
CBAIL Charles Bailey <bai...@genetics.upenn.edu>
CLP Usenet: comp.lang.perl, always a good place to enquire
DBPRL DBperl mailing list. <perldb-...@vix.com>
DFD Dominic Dunlop <dom...@natcorp.ox.ac.uk>
DMO Darryl Okahata <dar...@sr.hp.com>
DMR Dean Roehrich <roeh...@cray.com>
DNAD Dave Nadler <nadler@apphpp2>
EAYNG Eric Young <e...@mincom.oz.au>
ERICA Eric Arnold <Eric....@corp.sun.com>
FMC Frederic Chauveau <f...@pasteur.fr>
GBARR Graham Barr <Graha...@tiuk.ti.com>
GSPAF Gene Spafford <sp...@cs.purdue.edu>
IANPX Ian Phillipps <i...@pipex.net>
ILYAZ Ilya Zakharevich <il...@math.ohio-state.edu>
JACKS Jack Shirazi <j...@biu.icnet.uk>
JHI Jarkko Hietaniemi <Jarkko.H...@hut.fi>
JKAST Jason Kastner <ja...@wagner.com>
JV Johan Vromans <j...@inter.NL.net>
JWAT John Watson <jwa...@cnj.digex.net>
KJALB Kenneth Albanowski <kja...@kjahds.com>
LSTAF Lennart Staflin <le...@lysator.liu.se>
LWALL Larry Wall. Author of Perl. Busy man. <lw...@netlabs.com>
LWWWP libwww-perl mailing list <libww...@ics.UCI.EDU>
MARCP Marc Paquette <Marc.P...@crim.ca>
MEWP Michael Peppler <mpep...@itf.ch>
MGH Marc Hedlund <ma...@europa.com>
MHM Mike Moran <m...@austin.ibm.com>
MICB Malcolm Beattie <mbea...@sable.ox.ac.uk>
MRG Matthew Green <m...@mame.mu.oz.au>
NI-S Nick Ing-Simmons <n...@tiuk.ti.com>
NWINT Neil Winton <nwi...@axion.bt.co.uk>
PMQS Paul Marquess <pmar...@bfsec.bt.co.uk>
RDO Robert Olson <ol...@mcs.anl.gov>
RIK Rik Harris <rik.h...@fulcrum.com.au>
RVA Rodger Anderson <rod...@boi.hp.com>
TKML Tk Mailing list <n...@franz.ww.tu-berlin.de>
TOMC Tom Christiansen <tch...@mox.perl.com>
TOMH Tom Horsley <t...@ssd.csd.harris.com>
TPB Tim Bunce <Tim....@ig.co.uk>
TYEMQ Tye McQueen <t...@metronet.com>
ULPFR Ulrich Pfeifer <pfe...@woodstock.informatik.uni-dortmund.de>
WPS William Setzer <set...@math.ncsu.edu>
WSCOT Wayne Scott <wsc...@ichips.intel.com>
End.
Tim or Graham--
Does this imply that scripts that require chat2 are broken under perl5?
I've been trying to get a simple application that requires chat2.pl to
work. At this point I'm just trying to get it to connect to a remote host,
but that is failing (it's under Solaris-2.3, which has the $sock_stream
redefinition, but I have used both Caspar's fix for socket.ph and just
manually changing it to `2', but to no avail). Then I saw this and am
wondering if I'm just wasting my time...
Should I/we just wait for the perl5 module to be done? Or is this referring
to something else?
Thanks for any advice or info,
-mb-
With regard to IPC::Chat2 I think Randal was looking at a significant
rewrite of the perl4 code but he has not been able to devote time to it
(see his recent message).
I belive that Graham did 'Chat2' as a quick 'port' of the perl4 chat2
code. I forget the reasons why.
>I've been trying to get a simple application that requires chat2.pl to
>work. At this point I'm just trying to get it to connect to a remote host,
>but that is failing (it's under Solaris-2.3, which has the $sock_stream
>redefinition, but I have used both Caspar's fix for socket.ph and just
>manually changing it to `2', but to no avail). Then I saw this and am
>wondering if I'm just wasting my time...
>
>Should I/we just wait for the perl5 module to be done? Or is this referring
>to something else?
>
I'd get the Chat2 module from Graham and see how well it fits for you.
Perhaps some chat2 users with spare time could talk to Randal about
cooperating to implement his new design.
>Thanks for any advice or info,
>
> -mb-
Regards,
Tim Bunce.