Subject: comp.lang.perl.modules The Perl 5 Module List (Reusable Software)
Date: 14 Aug 1997 16:09:42 GMT

Archive-name: perl-faq/module-list
Revision: 2.44
Posting-Frequency: bi-weekly
URL: http://www.perl.com/CPAN/modules/00modlist.long.html

The Perl 5 Module List       Revision: 2.44 $Date: 1997/08/14 13:22:01 $
======================

Maintained by Tim Bunce and Andreas Knig <modules@perl.org>

Contents

     Introduction
     Where Are The Modules Kept?
     Playing Your Part
     How To Get a More Recent Copy of the List
     Editorial Information and Copyright

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, Perl Language Extensions and Documentation Tools
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 or Emulations of Other Programming Languages
10)  File Names, File Systems and File Locking (see also File Handles)
11)  String Processing, Language Text Processing, Parsing and Searching
12)  Option, Argument, Parameter and Configuration File Processing
13)  Internationalization and Locale
14)  Authentication, Security and Encryption
15)  World Wide Web, HTML, HTTP, CGI, MIME
16)  Server and Daemon Utilities
17)  Archiving, Compression and Conversion
18)  Images, Pixmap and Bitmap Manipulation, Drawing and Graphing
19)  Mail and Usenet News
20)  Control Flow Utilities (callbacks and exceptions etc)
21)  File Handle, Directory Handle and Input/Output Stream Utilities
22)  Microsoft Windows Modules
23)  Miscellaneous Modules

Part 3 - Big Projects Registry

1)   Items in the Todo File
2)   Multi-threading
3)   Object Management Group CORBA & IDL
4)   Expand Tied Array Interface
5)   Extend Yacc To Write XS Code
6)   Approximate Matching Regular Expressions

Part 4 - Standards Cross-reference

1)   IETF - Internet Engineering Task Force (RFCs)
2)   ITU - International Telegraph Union (X.*)
3)   ISO - International Standards Organization (ISO*)

Part 5 - Who's Who and What's Where

1)   Information / Contact Reference Details
2)   Perl Frequently Asked Questions (FAQ) Files
3)   Other Perl Archive Sites

Key: '+' indicates a new section or item,
     '!' indicates a changed section or item (typically new modules).


======================================================================

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 be posted to comp.lang.perl.announce and comp.answers on
a semi-regular basis. It has two key aims:

   - FOR DEVELOPERS: To change duplication of effort into cooperation.
   - 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.

Where Are The Modules Kept?

Most, but not all, of the modules can be found within CPAN, the
Comprehensive Perl Archive Network of mirrored FTP sites. Within the
CPAN scheme the modules described in this list can be found in the
modules/ directory below the CPAN root directory. These are the
currently registered CPAN sites:

    Africa
        South Africa
            ftp://ftp.is.co.za/programming/perl/CPAN/
    Asia
        Hong Kong
            ftp://ftp.hkstar.com/pub/CPAN/
        Japan
            ftp://ftp.dti.ad.jp/pub/lang/CPAN/
            ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
            ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
        South Korea
            ftp://ftp.bora.net/pub/CPAN/
            ftp://ftp.nuri.net/pub/CPAN/
        Taiwan
            ftp://dongpo.math.ncu.edu.tw/perl/CPAN/
            ftp://ftp.wownet.net/pub2/PERL/
        Thailand
            ftp://ftp.riubon.ac.th/pub/mirrors/perl/CPAN/
    Australasia
        Australia
            ftp://ftp.netinfo.com.au/pub/perl/CPAN/
        New Zealand
            ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/
    Central America
        Costa Rica
            ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
    Europe
        Austria
            ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
        Belgium
            ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
        Czech Republic
            ftp://ftp.fi.muni.cz/pub/perl/
            ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/
        Denmark
            ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
        Estonia
            ftp://ftp.ut.ee/pub/languages/perl/CPAN/
        Finland
            ftp://ftp.funet.fi/pub/languages/perl/CPAN/
        France
            ftp://ftp.lip6.fr/pub/perl/CPAN/
            ftp://ftp.oleane.net/pub/mirrors/CPAN/
            ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/
        Germany
            ftp://ftp.Germany.EU.net/pub/programming/perl/CPAN
            ftp://ftp.gmd.de/packages/CPAN/
            ftp://ftp.leo.org/pub/comp/programming/languages/script/perl/CPAN/
            ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
            ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
            ftp://ftp.uni-erlangen.de/pub/source/Perl/CPAN/
            ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
        Greece
            ftp://ftp.ntua.gr/pub/lang/perl/
        Hungary
            ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
        Ireland
            ftp://sunsite.compapp.dcu.ie/pub/perl/
        Italy
            ftp://cis.utovrm.it/CPAN/
        Norway
            ftp://ftp.uit.no/pub/languages/perl/cpan/
        Poland
            ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
            ftp://sunsite.icm.edu.pl/pub/CPAN/
        Portugal
            ftp://ftp.ci.uminho.pt/pub/lang/perl/
            ftp://ftp.telepac.pt/pub/CPAN/
        Romania
            ftp://ftp.dntis.ro/pub/mirrors/perl-cpan/
            ftp://ftp.dnttm.ro/pub/CPAN
        Russia
            ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
        Slovenia
            ftp://ftp.arnes.si/software/perl/CPAN/
        Spain
            ftp://ftp.etse.urv.es/pub/mirror/perl/
            ftp://ftp.rediris.es/mirror/CPAN/
        Sweden
            ftp://ftp.sunet.se/pub/lang/perl/CPAN/
        Switzerland
            ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
        the Netherlands
            ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/
            ftp://ftp.EU.net/packages/cpan/
        UK
            ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
            ftp://ftp.flirble.org/pub/languages/perl/CPAN/
            ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
            ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/
    North America
        Canada
            ftp://enterprise.ic.gc.ca/pub/perl/CPAN/
            ftp://ftp.utilis.com/public/CPAN/
            ftp://theory.uwinnipeg.ca/pub/CPAN/
        USA
            ftp://cpan.if.usp.br/pub/mirror/CPAN/
            ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
            ftp://ftp.cdrom.com/pub/perl/CPAN/
            ftp://ftp.cis.ufl.edu/pub/perl/CPAN/
            ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
            ftp://ftp.digital.com/pub/plan/perl/CPAN/
            ftp://ftp.duke.edu/pub/perl/
            ftp://ftp.epix.net/pub/languages/perl/
            ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/
            ftp://ftp.metronet.com/pub/perl/
            ftp://ftp.orst.edu/pub/packages/CPAN/
            ftp://ftp.ou.edu/mirrors/CPAN/
            ftp://ftp.rge.com/pub/languages/perl/
            ftp://ftp.sedl.org/pub/mirrors/CPAN/
            ftp://ftp.spu.edu/pub/CPAN/
            ftp://ftp.sterling.com/CPAN/
            ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/
    South America
        Brazil
            ftp://ftp.ing.puc.cl/pub/unix/perl/CPAN/
        Chile
            ftp://sunsite.dcc.uchile.cl/pub/Lang/perl/CPAN/

All the files under each of the directories listed above should be
identical at all these sites since they are all automatically
maintained mirrors of the master CPAN site. Please use which ever site
is 'nearest' you.

NOTE: If you can't find what you want, or wish to check that what
you've found is the latest version, or wonder why a module mentioned in
this list is not on CPAN, you should contact the person associated with
the module (and not the maintainers of the archives or this list).
Contact details are given at the start of Part 5.

For the navigation through the modules collected on the CPAN there are
several entry points: http://www.perl.com/CPAN/CPAN.html provides
verbose descriptions for each and every module. If you prefer a simple
clickable list you may prefer
http://www.perl.com/CPAN/modules/01modules.index.html. The file you're
currently reading is also available on CPAN in a webified version,
http://www.perl.com/CPAN/modules/00modlist.long.html . Note that
http://www.perl.com/CPAN/ is a smart redirector which will connect you
to a reasonably 'near' CPAN site.

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 reusable,
modules could be extracted. There may be many people who would find
your work very useful. Please play your part and contribute to the Perl
community where you can. [ end of sermon :-]

Help save the world! Please submit new entries and updates to us so we
can keep this list up-to-date. Send the new or corrected entry by email
to modules@perl.org (or modules@franz.ww.tu-berlin.de in case the above
doesn't work). Please do not send code to this address. Instead upload
your module, once registered, to the PAUSE site for forwarding on to
CPAN. See section 2, especially 2.6 and 2.11.

How To Get a More Recent Copy of the List

This Module List is posted to comp.lang.perl.modules, comp.answers and
news.answers bi-weekly with a long expiry time (over a month). The
first place to look for a more recent copy is therefore your own Usenet
spool area.

You should be able to get a copy from one of these places:

  1.) ASCII version:
        ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/module-list
        ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/lang/perl/
  2.) HTML version:
        http://www.perl.com/CPAN/modules/00modlist.long.html



Editorial Information and Copyright

This document is Copyright (c) 1997 by Tim Bunce and Andreas Knig. All
rights reserved. 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.Bunce@ig.co.uk and
Andreas.Koenig@mind.de.

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.

A little background information... I (Tim) created the Module List in
August 1994 and maintained it manually till April 1996. By that time
Andreas had implemented the Perl Authors Upload Server (PAUSE) and it
was happily feeding modules through to the CPAN archive sites (see
http://www.perl.com/CPAN/modules/04pause.html for details). Since PAUSE
held a database of module information which could be maintained by
module authors it made sense for the module listing part of the Module
List to be built from that database. In April 1996 Andreas took over
the automatic posting of the Module List and I now maintain the other
parts of the text. We plan to add value to the automation over time.

======================================================================

        Part 1 - Modules: Creation, Use and Abuse
        =========================================

1)   Perl 5 Module Terminology
     -------------------------

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 existing 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 existing 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 existing 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 and reuse.

   Use blessed references.  Use the two argument form of bless to bless
   into the class name given as the first parameter of the constructor,
   e.g.:

     sub new {
         my $class = shift;
         return bless {}, $class;
     }

   or even this if you'd like it to be used as either a static
   or a virtual method.

     sub new {
         my $self  = shift;
         my $class = ref($self) || $self;
         return bless {}, $class;
     }

   Pass arrays as references so more parameters can be added later
   (it's also faster).  Convert functions into methods where
   appropriate.  Split large methods into smaller more flexible ones.
   Inherit methods from other modules if appropriate.

   Avoid class name tests like: die "Invalid" unless ref $ref eq 'FOO'.
   Generally you can delete the "eq 'FOO'" part with no harm at all.
   Let the objects look after themselves! If it's vital then you can
   use the UNIVERSAL methods isa and can. Generally, avoid hardwired
   class names as far as possible.

   Avoid $r->Class::func() where using @ISA=qw(... Class ...) and
   $r->func() would work (see perlbot man page for more details).

   Use autosplit or the SelfLoader module so little used or newly added
   functions won't be a burden to programs which don't use them. Add
   test functions to the module after __END__ either using autosplit or
   by saying:

     eval join('',<main::DATA>) || die $@ unless caller();

   Does your module pass the 'empty sub-class' test? If you say
   "@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able
   to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
   does your application still work if you change:  $obj = new YOURCLASS;
   into: $obj = new SUBCLASS; ?

   Avoid keeping any state information in your packages. It makes it
   difficult for multiple other packages to use yours. Keep state
   information in objects.

   Always use -w. Try to "use strict;" (or "use strict qw(...);").
   Remember that you can add "no strict qw(...);" to individual blocks
   of code which need less strictness. Always use -w. Always use -w!
   Follow the guidelines in the perlstyle(1) manual.


2.3 Some simple style guidelines

   The perlstyle manual supplied with perl has many helpful points.

   Coding style is a matter of personal taste. Many people evolve their
   style over several years as they learn what helps them write and
   maintain good code.  Here's one set of assorted suggestions that
   seem to be widely used by experienced developers:

   Use underscores to separate words.  It is generally easier to read
   $var_names_like_this than $VarNamesLikeThis, especially for
   non-native speakers of English. It's also a simple rule that works
   consistently with VAR_NAMES_LIKE_THIS.

   Package/Module names are an exception to this rule. Perl informally
   reserves lowercase module names for 'pragma' modules like integer
   and strict. Other modules normally begin with a capital letter and
   use mixed case with no underscores (need to be short and portable).

   You may find it helpful to use letter case to indicate the scope
   or nature of a variable. For example:

     $ALL_CAPS_HERE   constants only (beware clashes with perl vars)
     $Some_Caps_Here  package-wide global/static
     $no_caps_here    function scope my() or local() variables

   Function and method names seem to work best as all lowercase.
   E.g., $obj->as_string().

   You can use a leading underscore to indicate that a variable or
   function should not be used outside the package that defined it.

   For method calls use either

     $foo = new Foo $arg1, $arg2;     # no parentheses
     $foo = Foo->new($arg1, $arg2);

   but avoid the ambiguous form

     $foo = new Foo($arg1, $arg2);    # Foo() looks like function call

   It can be very helpful if the names of the classes that your module
   uses can be specified as parameters. Consider:

     $dog_class = $args{dog_class} || 'Dog';
     $spot = $dog_class->new(...);

   This allows the user of your module to specify an alternative class
   (typically a subclass of the one you would normally have used).

   On how to report constructor failure, Larry said:

   I tend to see it as exceptional enough that I'll throw a real Perl
   exception (die) if I can't construct an object.  This has a couple
   of advantages right off the bat.  First, you don't have to check the
   return value of every constructor.  Just say "$fido = new Doggie;"
   and presume it succeeded.  This leads to clearer code in most cases.

   Second, if it does fail, you get a better diagnostic than just the
   undefinedness of the return value.  In fact, the exception it throws
   may be quite rich in "stacked" error messages, if it's rethrowing an
   exception caught further in.

   And you can always catch the exception if it does happen using eval {}.

   If, on the other hand, you expect your constructor to fail a goodly
   part of the time, then you shouldn't use exceptions, but you should
   document the interface so that people will know to check the return
   value.  You don't need to use defined(), since a constructor would
   only return a true reference or a false undef.  So good Perl style
   for checking a return value would simply say

      $conn = new Connection $addr
         or die "Couldn't create Connection";

   In general, make as many things meaningful in a Boolean context as
   you can.  This leads to straightforward code.  Never write anything
   like

      if (do_your_thing() == OK)

   in Perl.  That's just asking for logic errors and domain errors.
   Just write

      if (do_your_thing())

   Perl is designed to help you eschew obfuscation, if that's your thing.


2.4 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.5 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.  Generally the name should reflect what is special
   about what the module does rather than how it does it.

   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.modules or
   modules@perl.org.

   Please use a nested module name to informally group or categorise
   a module, e.g., placing a sorting module into a Sort:: category.
   A module should have a very good reason not to have a nested name.
   Please avoid using more than one level of nesting for module names
   (packages or classes within modules can, of course, use any number).

   Module names should begin with a capital letter. Lowercase names are
   reserved for special modules such as pragmas (e.g., lib and strict).

   Note that module names are not related to class hierarchies.
   A module name Foo::Bar does not in any way imply that Foo::Bar
   inherits from Foo.  Nested names are simply used to provide some
   useful categorisation for humans. The same is generally true for
   all package names.

   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.

   If developing modules for private internal or project specific use,
   that will never be released to the public, then you should ensure
   that their names will not clash with any future public module. You
   can do this either by using the reserved Local::* category or by
   using a category name that includes an underscore like Foo_Corp::*.

   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.6 Have you got it right?

   How do you know that you've made the right decisions? Have you
   picked an interface design that will cause problems later? Have
   you picked the most appropriate name? Do you have any questions?

   The best way to know for sure, and pick up many helpful suggestions,
   is to ask someone who knows. The comp.lang.perl.modules Usenet
   newsgroup is read by just about all the people who develop modules
   and it's generally the best place to ask first. If you need more
   help then try modules@perl.org.

   All you need to do is post a short summary of the module, its
   purpose and interfaces. A few lines on each of the main methods is
   probably enough. (If you post the whole module it might be ignored
   by busy people - generally the very people you want to read it!)

   Don't worry about posting if you can't say when the module will be
   ready - just say so in the message. It might be worth inviting
   others to help you, they may be able to complete it for you!


2.7 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.8 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) 1997 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.
   Remember to include the other words in addition to the Copyright.


2.9 Give the module a version/issue/release number.

   To be fully compatible with the Exporter and MakeMaker modules you
   should store your module's version number in a non-my package
   variable called $VERSION.  This should be a valid floating point
   number with at least two digits after the decimal (ie hundredths,
   e.g, $VERSION = "0.01").  See Exporter.pm for details.

   Don't use a "1.3.2" style version directly. If you use RCS or a
   similar system which supports multilevel versions/branches you can
   use this (but put it all on one line for MakeMaker VERSION_FROM):

    $VERSION = do { my @r=(q$Revision: 2.80 $=~/\d+/g);
                    sprintf "%d."."%02d"x$#r,@r };

   It may be handy to 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.gz).
   See perldoc ExtUtils::MakeMaker.pm for details.


2.10 Listing Prerequisites in a Bundle module

   If your module needs some others that are available on CPAN, you
   might consider creating a 'bundle' module that lists all the
   prerequisites in a standardized way. Automatic installation software
   such as the CPAN.pm module can take advantage of such a listing and
   enable your users to install all prerequisites and your own module
   with one single command. See the CPAN.pm module for details.


2.11 How to release and distribute a module.

   By far the best way to release modules is to register yourself with
   the Perl Authors Upload Server (PAUSE). By registering with PAUSE
   you will be able to easily upload (or mirror) your modules to the
   PAUSE server from where they will be mirrored to CPAN sites across
   the planet.

   It's good idea to post an announcement of the availability of your
   module to the comp.lang.perl.announce Usenet newsgroup.  This will
   at least ensure very wide once-off distribution.

   If not using PAUSE 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. Remember to 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.

   FTP Archives for Perl Modules:

   Follow the instructions and links on

       http://www.perl.com/CPAN/modules/04pause.html

   or upload to one of these sites:

       ftp://franz.ww.tu-berlin.de/incoming (preferred)
       ftp://ftp.cis.ufl.edu/incoming

   and notify upload@franz.ww.tu-berlin.de.

   By using the PAUSE WWW interface you can ask the Upload Server to
   mirror your modules from your ftp or WWW site into your own
   directory on CPAN. Please remember to send us an updated entry for
   the Module list!


2.12 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 if people rely on it. Document incompatible changes.



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.
   See perltrap.pod for details of all known perl4-to-perl5 issues.


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 on top of the reusable modules. In these
    cases the application could invoked as:

         perl -MModule::Name -e 'func(@ARGV)'


=======================================================================


              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 we have received.
We don't record the version number or release dates of the listed
Modules. Nor do we record the locations of these Modules. Consult the
contact, try the usual perl CPAN sites or ask in comp.lang.perl.misc.
Please do *not* ask us directly, we 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 (approximate) 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  (Note: *NO IMPLIED TIMESCALES*):
    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 rigorous definition)
    S   - Standard, supplied with Perl 5

  S - Support Level:
    m   - Mailing-list
    d   - Developer
    u   - Usenet newsgroup comp.lang.perl.misc
    n   - None known, try comp.lang.perl.misc

  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.misc.

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 we can update the list and thus inform anyone
else who might be interested. Adoption simply means that you either
hope to implement the module one day or would like to cooperate with
anyone else who might be interested in implementing it.


Cooperation

Similarly, if an idea that interests you has been adopted by someone
please contact them so you can share ideas.  Just because an idea has
been adopted does NOT imply that it's going to be implemented. Just
because a module is listed and being implemented does NOT mean it'll
get finised. Waiting silently in the hope that the Module will appear
one day is unlikely to be fruitful! Offer to help. Cooperate. Pool your
efforts. Go on, try it!

The same applies to modules in all states. Most modules are developed
in limited spare time. If you're interested in a module don't just wait
for it to happen, offer to help.

Module developers should feel free to announce incomplete work early.
If you're not going to be able to spend much time on something then say
so. If you invite cooperation maybe someone will implement it for you!



_______________________________________________________________________

2) Perl Core Modules, Perl Language Extensions and Documentation Tools

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
CORE           Sucf  Internal package for perl native functions   P5P
UNIVERSAL      SucO  Internal universal base-class                JACKS
SUPER          SucO  Internal class to access superclass methods  P5P
DynaLoader     SucO  Dynamic loader for shared libraries          P5P
AutoLoader     SupO  Automatic function loader (using AutoSplit)  P5P
SelfLoader     SdpO  Automatic function loader (using __DATA__)   JACKS
Exporter       SupO  Implements default import method for modules P5P
Carp           Supf  Throw exceptions outside current package     P5P
Config         Supf  Stores details of perl build configuration   P5P
English        Supf  Defines English names for special variables  P5P
Symbol         SupO  Create 'anonymous' symbol (typeglobs) refs   CHIPS
Opcode         adpf  Disable named opcodes when compiling code    TIMB
Taint          idpf  Utilities related to tainting                PHOENIX

Perl Pragmatic Modules

constant       adpf  Define compile-time constants                PHOENIX
diagnostics    Sdpf  For reporting perl diagnostics in full form  TOMC
integer        Supf  Controls float vs. integer arithmetic        P5P
less           Supf  Controls optimisations: 'use less memory;'   P5P
lib            Supf  Simple way to add/delete directories in @INC P5P
overload       SdpO  Overload perl operators for new data types   ILYAZ
sigtrap        Supf  For trapping an abort and giving a traceback P5P
strict         Supf  Controls averments (similar to pragmas)      P5P
subs           Supf  use subs qw(x y); is short for sub x; sub y; P5P
vars           Supf  predeclare variable names                    P5P

Perl Language Extensions

Safe           SdcO  Restrict eval'd code to safe subset of ops   MICB
Alias          bdcf  Convenient access to data/code via aliases   GSAR
Plthread       i     Multithreading at Perl level (not O/S level) MICB

The Perl Compiler

B              aucO  The Perl Compiler                            MICB
O              aucO  Perl Compiler frontends                      MICB

B::
::Graph        adpr  Perl Compiler backend to diagram OP trees    SMCCAM +

Source Code Filters

Filter::Util::
::Exec         bdcf  Interface for creation of coprocess Filters  PMQS
::Call         bdcf  Interface for creation of Perl Filters       PMQS

Filter::
::exec         bdcf  Filters script through an external command   PMQS
::sh           bdcf  Filters script through a shell command       PMQS
::cpp          bdcf  Filters script through C preprocessor        PMQS
::tee          bdcf  Copies to file perl source being compiled    PMQS
::decrypt      bdcf  Template for a perl source decryption filter PMQS

Documentation Tools:

Pod::
::HTML         cdpr  converter to HTML                            KJALB
::Index        cdpr  index generator                              KJALB
::Latex        cdpr  converter to LaTeX                           KJALB
::Lint         cdpO  Lint-style validator for pod                 NEILB
::Man          cdpr  converter to man page                        KJALB
::MIF          adpO  converter to FrameMaker MIF                  JNH
::Parser       bdpO  Base class for parsing pod syntax            BRADAPP
::Pod          cdpr  converter to canonical pod                   KJALB
::RTF          cdpr  converter to RTF                             KJALB
::Select       bdpf  Print only selected sections of pod docs     BRADAPP
::Simplify     cdpr  Common pod parsing code                      KJALB
::Texinfo      cdpr  converter to texinfo                         KJALB
::Text         Supf  convert POD data to formatted ASCII text     TOMC
::Usage        bdpf  Print Usage messages based on your own pod   BRADAPP


_______________________________________________________________________

3) Development Support

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
AutoSplit      Supf  Splits modules into files for AutoLoader     P5P
Benchmark      Supf  Easy way to time fragments of perl code      P5P
FindBin        adpf  Locate current script bin directory          GBARR
DoWhatIWant    i     Does what you want without even asking

ExtUtils::
::DynaGlue     adcr  Methods for generating Perl extension files  DOUGM !
::DynaLib      adcO  Allows direct calls to dynamic libraries     JTOBEY
::GDBinit      i     Create a .gdbinit file                       JASONS +
::MakeMaker    SupO  Writes Makefiles for extensions              MMML
::Manifest     Supf  Utilities for managing MANIFEST files        MMML
::Typemap      i     xsubpp typemap handling                      WPS
::Embed        Sdpf  Utilities for embedding Perl in C/C++ apps   DOUGM !
::F77          RdpO  Facilitate use of FORTRAN from Perl/XS code  KGB

Test::
::Harness      Supf  Executes perl-style tests                    ANDK

Devel::
::CallerItem   RupO  'caller()' Object wrapper + useful methods   JACKS
::CoreStack    adpf  generate a stack dump from a core file       ADESC
::DProf        Rdcf  Execution profiler                           DMR
::DumpStack    Rupf  Dumping of the current function stack        JACKS
::Peek         adcf  Peek at internal representation of Perl data ILYAZ
::RegExp       adcO  Access perl internal regex functions         ILYAZ
::Symdump      RdpO  Perl symbol table access and dumping         ANDK
::TraceFuncs   adpO  Trace funcs by using object destructions     JOEHIL

Usage          bupr  Type and range checking on subroutine args   JACKS

VCS::
::RCS          idpf  Interface layer over RCS functionality       RJRAY
::RCE          idcf  Perl layer over RCE C API                    RJRAY

Include        adpO  Parse C header files for use in XS           GBARR
Make           adpO  Makefile parsing, and 'make' replacement     NI-S

_______________________________________________________________________

4) Operating System Interfaces

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Env            Supf  Alias environment variables as perl vars     P5P
Errno          cdpf  Constants from errno.h EACCES, ENOENT etc    GBARR
Fcntl          Sdcf  Defines fcntl() constants (see File::Lock)   JHI
Ioctl          cdcf  Defines ioctl() constants                    KJALB
POSIX          SupO  An interface to most (all?) of POSIX.1       P5P
Shell          Supf  Run shell commands transparently within perl P5P

BSD::
::HostIdent    i     s/gethostname(), s/gethostid()               JHI
::Resource     Rdcf  getrusage(), s/getrlimit(), s/getpriority()  JHI

Proc::
::ExitStatus   cdpf  Interpret and act on wait() status values    ROSCH
::Forkfunc     Rdpf  Simple lwall-style fork wrapper              MUIR
::SafePipe     cdpf  popen() and `` without calling the shell     ROSCH
::Simple       adpO  Fork wrapper with objects                    MSCHILLI
::SyncExec     cdpf  Spawn processes but report exec() errors     ROSCH
::times        adpf  By-name interface to process times function  TOMC

Quota          adcf  Disk quota system functions, local & remote  TOMZO

Sys::
::AlarmCall    Rupf  Timeout on any sub. Allows nested alarms     JACKS
::Hostname     Supf  Implements a portable hostname function      P5P
::Sysconf      bdpf  Defines constants for POSIX::sysconf()       NI-S  +
::Syslog       Supf  Provides same functionality as BSD syslog    P5P

Platform Specific Modules

FreeBSD::
::SysCalls     cdcf  FreeBSD-specific system calls                GARY

Mac::                Macintosh specific modules
::AppleEvents  bmcO  AppleEvent manager and AEGizmos              MCPL
::Components   bmcO  (QuickTime) Component manager                MCPL
::Files        bmcO  File manager                                 MCPL
::Gestalt      bmcO  Gestalt manager: Environment enquiries       MCPL
::Memory       bmcO  Memory manager                               MCPL
::MoreFiles    bmcO  Further file management routines             MCPL
::OSA          bmcO  Open Scripting Architecture                  MCPL
::Processes    bmcO  Process manager                              MCPL
::Resources    bmcO  Resource manager                             MCPL
::Types        bmcO  (Un-)Packing of Macintosh specific types     MCPL

Mac::Apps::
::Anarchie     RdpO  Interface to Anarchie with AppleEvents       CNANDOR
::MacPGP       RdpO  Interface to MacPGP 2.6.3 with AppleEvents   CNANDOR
::PBar         RdpO  AppleEvent module for Progress Bar           CNANDOR +

Mac::Comm::
::OT_PPP       RdpO  Interface to Open Transport/PPP              CNANDOR

MSDOS::
::SysCalls     adcf  MSDOS interface (interrupts, port I/O)       DMO

NeXTStep::
::NetInfo      idcO  NeXTStep's NetInfo (like ONC NIS)            PGUEN

OS2::
::Attrib       Rdcf  Get or set file attributes (not EAs)         CJM
::ExtAttr      RdcO  (Tied) access to extended attributes         ILYAZ
::FTP          bncf  Access to ftplib interface                   ILYAZ
::PrfDB        RdcO  (Tied) access to .INI-style databases        ILYAZ
::REXX         RdcO  Access to REXX DLLs and REXX runtime         ILYAZ
::UPM          bncf  User Profile Management                      ILYAZ

SGI::
::SysCalls     cdcf  SGI-specific system calls                    AMOSS
::GL           adcr  SGI's Iris GL library                        AMOSS
::FM           adcr  SGI's Font Management library                AMOSS

VMS::
::SysCalls     i     VMS-specific system calls                    CBAIL
::Filespec     Sdcf  VMS and Unix file name syntax                CBAIL

Portable Digital Assistants

PDA::
::Pilot        amcO  Interface to pilot-link library              KJALB

_______________________________________________________________________

5) Networking, Device Control (modems) and InterProcess Communication

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Socket         Sucf  Defines all socket-related constants         JACKS
Ptty           adcf  Pseudo terminal interface functions          NI-S

Net::
::ACAP         adpO  Interface to ACAP Protocol (Internet-Draft)  KJOHNSON
::Bind         adpO  Interface to bind daemon files               KJOHNSON
::Cmd          cdpO  For command based protocols (FTP, SMTP etc)  GBARR
::DNS          adpO  Interface to the DNS resolver                MFUHR
::Dnet         cdcO  DECnet-specific socket usage                 SPIDB
::Domain       adpf  Try to determine TCP domain name of system   GBARR
::FTP          adpf  Interface to File Transfer Protocol          GBARR
::Gen          adcO  Generic support for socket usage             SPIDB
::ICAP         adpO  Interface to ICAP Protocol (Internet-Draft)  KJOHNSON
::IMAP         adpO  Interface to IMAP Protocol (RFC2060)         KJOHNSON
::IRC          cdpO  Internet Relay Chat interface                DSHEPP !
::Ident        RdpO  Performs ident (rfc1413) lookups             JPC
::Inet         adcO  Internet (IP) socket usage                   SPIDB
::LDAP         adpO  Interface to LDAP Protocol (RFC1777)         PLDAP
::LDAPapi      Rdcf  Interface to UMICH and Netscape LDAP C API   CDONLEY +
::NIS          adcO  Interface to Sun's NIS                       RIK
::NISPlus      adcO  Interface to Sun's NIS+                      RIK
::NNTP         adpO  Client interface to NNTP protocol            GBARR
::Netrc        adpO  Support for .netrc files                     GBARR
::POP3         adpO  Client interface to POP3 protocol            GBARR
::Pcap         adcr  An interface for LBL's packet capture lib    PLISTER +
::Ping         SupO  TCP and ICMP ping (will come with perl5.004) RMOSE
::Ping         Supf  TCP ping (comes with with perl5.003)         PMQS
::SMTP         adpf  Interface to Simple Mail Transfer Protocol   GBARR
::SNMP         adpO  Interface to SNMP Protocol (RFC1157)         GBARR
::SNPP         cdpO  Client interface to SNPP protocol            GBARR
::SOCKS        cdcf  TCP/IP access through firewalls using SOCKS  SCOOPER
::SSLeay       adcf  Secure Socket Layer (Eric Young's version)   SAMPO
::TCP          adcO  TCP-specific socket usage                    SPIDB
::Telnet       adpO  Interact with TELNET port or other TCP ports JROGERS
::Time         adpf  Obtain time from remote machines             GBARR
::UDP          cdcO  UDP-specific socket usage                    SPIDB
::hostent      adpf  A by-name interface for hosts functions      TOMC
::netent       adpf  A by-name interface for networks functions   TOMC
::protoent     adpf  A by-name interface for protocols functions  TOMC
::servent      adpf  A by-name interface for services functions   TOMC
::xAP          adpO  Interface to IMAP,ACAP,ICAP substrate        KJOHNSON

IPC::
::Open2        Supf  Open a process for both reading and writing  P5P
::Open3        Supf  Like IPC::Open2 but with error handling      P5P
::Chat2        ?     Out-of-service during refit!                 GBARR
::SysV         adcr  shared memory, semaphores, messages etc      JACKS
::Mmap         i     Interface to Unix's mmap() shared memory     MICB
::Globalspace  cdpO  Multi-process shared hash and shared events  JACKS
::Signal       cdpf  Translate signal names to/from numbers       ROSCH

RPC::                Remote Procedure Calls (see also DCE::RPC)
::ONC          adcO  ONC RPC interface (works with perlrpcgen)    JAKE

DCE::                Distributed Computing Environment (OSF)
::ACL          bdcO  Interface to Access Control List protocol    DOUGM
::DFS          bdcO  DCE Distributed File System interface        PHENSON
::Login        bdcO  Interface to login functions                 DOUGM
::RPC          c     Remote Procedure Calls                       DOUGM
::Registry     bdcO  DCE registry functions                       DOUGM
::Status       bdpr  Make sense of DCE status codes               DOUGM
::UUID         bdcf  Misc uuid functions                          DOUGM

Proxy          i     Transport-independent remote processing      MICB
Proxy::
::Tk           ?     Tk transport class for Proxy (part of Tk)    MICB

ToolTalk       adcr  Interface to the ToolTalk messaging service  MARCP
SNMP           RdcO  Interface to CMU's SNMPv2 libsnmp.a          GSM

Parallel::
::Pvm          bdcf  Interface to the PVM messaging service       EWALKER

_______________________________________________________________________

6) Data Types and Data Type Utilities (see also Database Interfaces)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Math::
::Amoeba       Rdpr  Multidimensional Function Minimisation       JARW
::Approx       adpO  Approximate x,y-values by a function         ULPFR
::BigFloat     SupO  Arbitrary size floating point math package   MARKB
::BigInt       SupO  Arbitrary size integer math package          MARKB
::BigInteger   adc   Arbitrary size integer as XS extension       GARY
::BigRat       ?     Arbitrary size rational numbers (fractions)  MARKB
::Brent        Rdpr  One-dimensional Function Minimisation        JARW
::Complex      SdpO  Complex number data type                     RAM
::Derivative   Rdpr  1st and 2nd order differentiation of data    JARW
::Fortran      Rdpf  Implements Fortran log10 & sign functions    JARW
::Fraction     adpO  Fraction Manipulation                        KEVINA
::IEEE         i     Interface to ANSI/IEEE Std 754-1985 funcs
::LinearProg   idp   Linear programming utilities                 JONO
::Matrix       adpO  Matrix data type (transpose, multiply etc)   ULPFR
::MatrixCplx   idpO  Matrix data type for Complex Numbers         STBEY
::MatrixReal   RdpO  Everything you ever wanted to do with Matr.  STBEY
::Pari         adcf  Interface to the powerful PARI library       ILYAZ
::Prime        i     Prime number testing                         GARY
::RandomPrime  i     Generates random primes of x bits            GARY
::SigFigs      bdpf  Math using scientific significant figures    SBECK
::Spline       RdpO  Cubic Spline Interpolation of data           JARW
::Trig         bdpf  tan asin acos sinh cosh tanh sech cosech     JARW
::TrulyRandom  i     based on interrupt timing discrepancies      GARY
::VecStat      Rdpr  Some basic numeric stats on vectors          JARW
::ematica      adcO  Interface to the powerful Mathematica system ULPFR

Statistics::
::LTU          RdpO  Implements Linear Threshold Units            TOMFA
::Descriptive  RdpO  Descriptive statistical methods              COLINK
::ChiSquare    Rdpf  Chi Square test - how random is your data?   JONO

PDL            amcf  Perl Data Language - numeric analysis env    PERLDL

PDL::
::PP           amcf  Automatically generate C code for PDL        PERLDL
::Meschach     amcf  Links PDL to meschach matrix library         EGROSS
::NetCDF       adcr  Reads/Writes NetCDF files from/to PDL objs   DHUNT
::Slatec       amof  Interface to slatec (linpack+eispack) lib.   PERLDL

Array::
::Vec          idp   Implement array using vec()                  LWALL
::Substr       idp   Implement array using substr()               LWALL
::Virtual      idp   Implement array using a file                 LWALL
::PrintCols    adpf  Print elements in vertically sorted columns  AKSTE

List::
::Extra        cdcf  Extra list/array manipulation functions      JNH

Bit::
::ShiftReg     Rdcf  Rotate/shift registers (all C integer types) STBEY
::Vector       RdcO  Efficient bit vector and set base class      STBEY

Set::
::IntRange     RdcO  Set of integers (arbitrary intervals, fast)  STBEY
::IntSpan      adpO  Set of integers newsrc style '1,5-9,11' etc  SWMCD
::IntegerFast  RdcO  Set of integers (algorithmical computations) STBEY
::Scalar       adpO  Set of scalars (inc references)              JHI
::Window       bdpO  Manages an interval on the integer line      SWMCD

Graph::
::Element      RdpO  Base class for element of directed graph     NEILB
::Node         RdpO  A node in a directed graph                   NEILB
::Edge         RdpO  An edge in a directed graph                  NEILB
::Kruskal      Rdpf  Kruskal Algorithm for Minimal Spanning Trees STBEY

Date::
::Convert      cdpO  Conversion between Gregorian, Hebrew, more?  MORTY
::CTime        adpf  Updated ctime.pl with mods for timezones     GBARR
::DateCalc     Rdcf  Gregorian calendar date calculations         STBEY
::Format       Rdpf  Date formatter ala strftime                  GBARR
::GetDate      adcf  Yacc based free-format date parser in C      TOMC
::Interval     idpO  Lightweight normalised interval data type    TIMB
::Language     adpO  Multi-language date support                  GBARR
::Manip        Rdpf  Manipulate/parse international dates/times   SBECK
::Parse        Rdpf  ASCII Date parser using regexp's             GBARR
::Time         idpO  Lightweight normalised datetime data type    TIMB

Time::
::CTime        Rdpf  Format Times ala ctime(3) with many formats  MUIR
::DaysInMonth  Rdpf  Returns the number of days in a month        MUIR
::HiRes        Rdcf  High resolution time, sleep, and alarm       DEWEG
::JulianDay    Rdpf  Converts y/m/d into seconds                  MUIR
::Local        Supf  Implements timelocal() and timegm()          P5P
::ParseDate    Rdpf  Parses many forms of dates and times         MUIR
::Period       Rdpf  Code to deal with time periods               PRYAN
::Timezone     Rdpf  Figures out timezone offsets                 MUIR
::Zone         Rdpf  Timezone info and translation routines       GBARR
::gmtime       Supf  A by-name interface for gmtime               TOMC  !
::localtime    Supf  A by-name interface for localtime            TOMC  !

Tie::
::Hash         Supr  Base class for implementing tied hashes      P5P
::Scalar       Supr  Base class for implementing tied scalars     P5P
::Array        c     Base class for implementing tied arrays      CHIPS
::Cache        adpO  In memory size limited LRU cache             MIKEH
::Dir          adpr  Tie hash for reading directories             GBARR
::File         adpr  Tie hash to files in a directory             AMW
::Handle       RdpO  Base class for implementing tied filehandles STBEY +
::IxHash       RdpO  Indexed hash (ordered array/hash composite)  GSAR
::Mem          adcO  Bind perl variables to memory addresses      PMQS
::Quick        i     Simple way to create ties                    TIMB
::ShiftSplice  i     Defines shift et al in terms of splice       LWALL
::SubstrHash   SdpO  Very compact hash stored in a string         LWALL
::Watch        bdpO  Watch variables, run code when read/written  LUSOL

Class::
::Eroot        RdpO  Eternal Root - Object persistence            DMR
::Template     Rdpr  Struct/member template builder               DMR

Object::
::Info         Rupf  General info about objects (is-a, ...)       JACKS

Ref            RdpO  Print, compare, and copy perl structures     MUIR

Sort::
::Versions     Rdpf  sorting of revision (and similar) numbers    KJALB
::PolySort     bdpO  general rules-based sorting of lists         DMACKS

Data Type Marshaling (converting to/from strings) and Persistent Storage

FreezeThaw     bdpf  Convert arbitrary objects to/from strings    ILYAZ
Persistent     adpO  (not supported anymore, placeholder)         JPC
Storable       adcr  Persistent data structure mechanism          RAM
Marshal::
::Dispatch     cdpO  Convert arbitrary objects to/from strings    MUIR
::Packed       cdpO  Run-length coded version of Marshal module   MUIR
::Eval         cdpO  Undo serialization with eval                 MUIR

Data::
::Dumper       RdpO  Convert data structure into perl code        GSAR
::Flow         RdpO  Acquire data based on recipes                ILYAZ
::Locations    RdpO  Store data in "drawers", nest these at will! STBEY +

Tree::
::Base         cdpO  Defines a basic binary search tree           MSCHWERN +
::Balanced     cdpO  Internally sorted hash-like ADT              MSCHWERN +
::Smart        cdpO  Sorted hash-ish, becomes faster with use     MSCHWERN +

_______________________________________________________________________

7) Database Interfaces (see also Data Types)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
DBI            amcO  Generic Database Interface (see DBD modules) DBIML
DBD::
::DB2          adcO  DB2 Driver for DBI                           MHM
::Fulcrum      cdcO  Fulcrum SearchServer Driver for DB           SHARI
::Informix     amcO  Informix Driver for DBI                      JOHNL
::Ingres       amcO  Ingres Driver for DBI                        HTOUG
::Oracle       amcO  Oracle Driver for DBI                        TIMB
::QBase        amcO  QBase Driver for DBI                         BENLI
::Solid        amcO  Solid Driver for DBI                         TWENRICH
::Sybase       cdpO  Sybase Driver for DBI (uses Sybase::CTlib)   MEWP
::mSQL         amcO  Msql Driver for DBI                          ANDK  !

Oraperl        Rmpf  Oraperl emulation interface for DBD::Oracle  DBIML
Ingperl        i     Ingperl emulation interface for DBD::Ingres  TIMB

Sybase::
::DBlib        RdcO  Sybase DBlibrary interface                   MEWP
::Sybperl      Rdpf  sybperl 1.0xx compatibility module           MEWP
::CTlib        bdcO  Sybase CTlibrary interface                   MEWP

Datascope      Rdcf  Interface to Datascope RDBMS                 DANMQ
Msql           RmcO  Mini-SQL, a light weight SQL database        ANDK
ObjStore       ad+O  ObjectStore DBMS Interface                   JPRIT !
Pg             Rdcf  Postgres95 SQL database interface            MERGL
Postgres       Rdcr  PostgreSQL interface with Perl5 coding style VKHERA
Sprite         RdpO  Limited SQL interface to flat file databases SHGUN
Xbase          bdpf  Read Xbase files with simple IDX indexes     PRATP

Tied Hash File Interfaces:

NDBM_File      Suc   Tie to NDBM files                            P5P
DB_File        Suc   Tie to DB files                              PMQS
GDBM_File      Suc   Tie to GDBM files                            P5P
SDBM_File      Suc   Tie to SDBM files                            P5P
ODBM_File      Suc   Tie to ODBM files                            P5P
AnyDBM_File    Sup   Uses first available *_File module above     P5P
DBZ_File       adc   Tie to dbz files (mainly for news history)   IANPX
MLDBM          bdpO  Transparently store multi-level data in DBM  GSAR
CDB_File       adc   Tie to CDB (Bernstein's constant DB) files   TIMPX

AsciiDB        i     Generic text database parsing                MICB
MARC           i     Interface to MARC format (bibliography)      PEM
NetCDF         bmcr  Interface to netCDF API for scientific data  SEMM
Stanza         i     Text format database used by OSF and IBM     JHI

DTREE          cdcf  Interface to Faircom DTREE multikey ISAM db  JWAT
Fame           adcO  Interface to FAME database and language      TRIAS

_______________________________________________________________________

8) User Interfaces (Character and Graphical)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Term::
::ANSIColor    bdpf  Color output using ANSI escape sequences     RRA
::Cap          Supf  Basic termcap: Tgetent, Tputs, Tgoto         TSANDERS
::Complete     Supf  Tab word completion using stty raw           WTOMPSON
::Control      idpf  Basic curses-type screen controls (gotxy)    KJALB
::Gnuplot      adcf  Draw vector graphics on terminals etc        ILYAZ
::Info         adpf  Terminfo interface (currently just Tput)     KJALB
::Query        Rdpf  Intelligent user prompt/response driver      AKSTE
::ReadKey      Rdcf  Read keystrokes and change terminal modes    KJALB
::ReadLine     Sdcf  Common interface for various implementations ILYAZ
::Screen       RdpO  Basic screen + input class (uses Term::Cap)  MRKAE
::Size         adcf  Simple way to get terminal size              TIMPX

Term::ReadLine::
::Perl         RdpO  GNU Readline history and completion in Perl  ILYAZ
::Gnu          adcO  GNU Readline XS library wrapper              HAYASHI

Major Character User Interface Modules:

Curses         adcO  Character screen handling and windowing      WPS
NCurses        cdcO  Curses using the ncurses package             WPS
PerlMenu       Mdpf  Curses-based menu and template system        SKUNZ
Cdk            RdcO  Collection of Curses widgets                 GLOVER
PV             bmpO  PerlVision curses windowing (OO widgets etc) AGUL

Tk X Windows User Interface Modules:

Tk             bmcO  Object oriented version of Tk v4             TKML
Tkperldb       bmpf  Graphical perl debugger interface            TKML

Tk::
::Getopt       adpO  User configuration interface to Getopt::Long SREZIC
::FileSelector bmpO  A Fileselectorbox for choosing files         TKML

Other Major X Windows User Interface Modules:

Sx             Rdcf  Simple Athena widget interface               FMC
Motif          cdcf  Simple Motif and Xt interface                ERICA
Fresco         cd+O  Interface to Fresco (post X11R6 version)     BPETH
Qt             ad+O  Interface to the Qt toolkit                  AWIN

X11::
::Fvwm         adcO  interface to the FVWM window manager API     RJRAY
::XEvent       bdcO  provides perl OO acess to XEvent structures  MARTINB
::XFontStruct  bdcO  provides perl OO access to XFontStruct       MARTINB
::Xforms       bdcO  provides the binding to the xforms library   MARTINB
::Protocol     adpO  Raw interface to X Window System servers     SMCCAM +
::Keysyms      adpf  X11 key symbols (translation of keysymdef.h) SMCCAM +
::Auth         adpO  Read and handle X11 '.Xauthority' files      SMCCAM +
::Wcl          cdcO  Interface to the Widget Creation Library     JHPB  +

_______________________________________________________________________

9) Interfaces to or Emulations of Other Programming Languages

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
C::
::Scan         RdpO  Heuristic parse of C files                   ILYAZ

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

Fortran::
::NameList     adpf  Interface to FORTRAN NameList data           SGEL


_______________________________________________________________________

10) File Names, File Systems and File Locking (see also File Handles)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Cwd            Supf  Current working directory functions          P5P

File::
::Attrib       idpO  Get/set file attributes (stat)               TYEMQ
::Basename     Supf  Return basename of a filename                P5P
::CheckTree    Supf  Check file/dir tree against a specification  P5P
::Cmp          bdpf  Compare file contents quickly                JNH
::Copy         adpf  Copying files or filehandles                 ASHER
::CounterFile  RdpO  Persistent counter class                     GAAS
::Find         Supf  Call func for every item in a directory tree P5P
::Flock        adpf  flock() wrapper.  Auto-create locks          MUIR
::Glob         adpf  Filename globing (ksh style)                 TYEMQ
::Listing      bdpf  Parse directory listings                     GAAS
::Lock         adcf  File locking using flock() and lockf()       JHI
::Path         Supf  File path and name utilities                 P5P
::Slurp        bdpf  Read/write/append files quickly              MUIR
::Sync         bdcf  POSIX/*nix fsync() and sync()                CEVANS
::lockf        bdcf  Interface to lockf system call               PHENSON
::stat         Supf  A by-name interface for the stat function    TOMC  !

Filesys::
::Df           ad??  Free disk space utilities                    FTASSIN
::dfent        adpf  By-name interface                            TOMC
::mntent       adpf  By-name interface                            TOMC
::statfs       adpf  By-name interface                            TOMC


_______________________________________________________________________

11) String Processing, Language Text Processing, Parsing and Searching

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
String::
::Approx       Rdpf  Approximate string matching and substitution JHI
::BitCount     adpf  Count number of "1" bits in strings          WINKO
::Edit         adpf  Assorted handy string editing functions      TOMC
::MatchMany    adpf  Build fast code to match many patterns       TOMC
::Parity       adpf  Parity (odd/even/mark/space) handling        WINKO
::Scanf        Rdpf  Implementation of C sscanf function          JHI
::ShellQuote   adpf  Quote string for safe passage through shells ROSCH

Language text related modules

Text::
::Abbrev       Supf  Builds hash of all possible abbreviations    P5P
::Bib          RdpO  Module moved to Text::Refer                  ERYQ
::CSV          adpO  Manipulate comma-separated value strings     ALANCITT !
::DelimMatch   RdpO  Match (possibly nested) delimited strings    NWALSH
::Invert       cdpO  Create/query inv. index of text entities     NNEUL
::ParseWords   Supf  Parse strings containing shell-style quoting HALPOM
::Refer        RdpO  Parse refer(1)-style bibliography files      ERYQ
::Soundex      Supf  Convert a string to a soundex value          MIKESTOK
::Tabs         Sdpf  Expand and contract tabs ala expand(1)       MUIR
::TeX          cdpO  TeX typesetting language input parser        ILYAZ
::Template     bdpO  Expand template text with embedded perl      MJD
::Vpp          adpO  Versatile text pre-processor                 DDUMONT
::Wrap         Sdpf  Wraps lines to make simple paragraphs        MUIR

Stemming algorithms

Text::
::English      adpf  English language stemming                    IANPX
::German       adpf  German language stemming                     ULPFR
::Stem         bdpf  Porter algorithm for stemming English words  IANPX

Search::
::Dict         Supf  Search a dictionary ordered text file        P5P

Other Text:: modules (these should be under String:: but pre-date it)

Font::
::AFM          RdpO  Parse Adobe Font Metric files                GAAS
::TFM          adpO  Read info from TeX font metric files         JANPAZ

Parse::
::Lex          adpO  Generator of lexical analysers               PVERD
::RecDescent   cnpO  Recursive descent parser generator           DCONWAY

SGML::
::Element      cdpO  Build a SGML element structure tree          LSTAF
SGMLS          RdpO  A Post-Processor for SGMLS and NSGMLS        INGOMACH

TeX::
::DVI          adpO  Methods for writing DVI (DeVice Independent) JANPAZ
::Hyphen       adpO  Hyphenate words using TeX's patterns         JANPAZ

Text::
::Trie         adpf  Find common heads and tails from strings     ILYAZ
::Parser       adpO  String parser using patterns and states      PATM

Marpa          cd+O  Context Free Parser                          JKEGL
Anagram        adcf  Anangram generator                           ASHER


_______________________________________________________________________

12) Option, Argument, Parameter and Configuration File Processing

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Getopt::
::Std          Supf  Implements basic getopt and getopts          P5P
::Long         Supf  Advanced option handling                     JV
::Gnu          adcf  GNU form of long option handling             WSCOT
::Regex        ad    Option handling using regular expressions    JARW
::Mixed        Rdpf  Supports both long and short options         CJM
::Help         bdpf  Yet another getopt, has help and defaults    IANPX
::EvaP         Mdpr  Long/short options, multilevel help          LUSOL

ConfigReader   cdpO  Read directives from configuration file      AMW
Resources      bdpf  Application defaults management in Perl      FRANCOC
IniConf        bdpO  Read/Write INI-Style configuration files     SHUTTON


_______________________________________________________________________

13) Internationalization and Locale

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
I18N::
::Collate      Sdpr  Locale based comparisons                     JHI
::WideMulti    i     Wide and multibyte character string          JHI

Locale::
::Country      Rdpf  ISO 3166 two letter country codes            NEILB
::Language     Rdpf  ISO 639 two letter language codes            NEILB
::Msgcat       RdcO  Access to XPG4 message catalog functions     CHRWOLF +
::gettext      Rdcf  Multilanguage messages                       PVANDRY

Unicode::
::UCS2         adpO  Unicode UCS-2 encoded strings                GAAS
::UCS4         i     Unicode UCS-4 encoded strings                GAAS
::CType        i     Classification of Unicode chars              GAAS

Modules related to countries or national conventions

No::
::Dato         adpf  Norwegian stuff                              GAAS
::KontoNr      adpf  Norwegian stuff                              GAAS
::PersonNr     adpf  Norwegian stuff                              GAAS
::Sort         adpf  Norwegian stuff                              GAAS
::Telenor      adpf  Norwegian stuff                              GAAS

Cz::
::Sort         adpO  Czech sorting                                JANPAZ
::Cstocs       adpO  Charset reencoding                           JANPAZ

_______________________________________________________________________

14) Authentication, Security and Encryption (see also Networking)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
User::
::pwent        adpf  A by-name interface to password database     TOMC
::grent        adpf  A by-name interface to groups database       TOMC
::utent        cdcO  Interface to utmp/utmpx/wtmp/wtmpx database  ROSCH

PGP::          adpO  Simple interface to PGP subprocess via pipes PGPML
::Sign         adpr  Create and check PGP signatures, securely    RRA   +

DES            adcf  DES encryption (libdes)                      EAYNG
Des            adcf  DES encryption (libdes)                      MICB
MD5            RdcO  MD5 message digest algorithm                 NWINT
SHA            adcO  NIST SHA message digest algorithm            UWEH
GSS            adcO  Generic Security Services API (RFC 2078)     MSHLD

Crypt::
::DES          a     DES encryption (libdes)                      GARY
::IDEA         a     International Data Encryption Algorithm      GARY
::PRSG         a     160 bit LFSR for pseudo random sequences     GARY

Authen::
::Krb5         cdcO  Interface to Kerberos API                    DOUGM


_______________________________________________________________________

15) World Wide Web, HTML, HTTP, CGI, MIME etc (see Text Processing)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
URI::
::Escape       ampf  General URI escaping/unescaping functions    LWWWP
::URL          RmpO  Uniform Resource Locator objects             LWWWP

CGI::
::Base         RmpO  Complete HTTPD CGI Interface class           CGIP
::BasePlus     RmpO  Extra CGI::Base methods (incl file-upload)   CGIP
::Carp         cmpf  Drop-in Carp replacement for CGI scripts     CGIP
::ErrorWrap    bdpf  Trap warnings and die and convert into HTML  TOMC
::Imagemap     adpO  Imagemap handling for specialized apps       MIKEH
::MiniSvr      RmpO  Fork CGI app as a per-session mini server    CGIP
::Out          adpf  Buffer CGI output and report errors          MUIR
::Request      RmpO  Parse CGI request and handle form fields     CGIP
::Response     ampO  Response construction for CGI applications   CGIP
::Session      cmpO  Maintain session/state information           MGH

HTML::
::QuickCheck   cdpf  Fast simple validation of HMTL text          YLU
::Base         adpO  Object-oriented way to build pages of HTML   GAND
::Simple       bdpf  Simple functions for generating HTML         TOMC
::Element      ampO  Representation of a HTML parsing tree        LWWWP
::Embperl      bdcf  Embed Perl in HTML                           GRICHTER
::Entities     bmpf  Encode/decode HTML entities                  LWWWP
::Formatter    ampO  Convert HTML to plain text or Postscript     LWWWP
::Parse        ampO  Parse HTML documents                         LWWWP
::Stream       RdpO  HTML output stream                           ERYQ

HTTP::
::Date         bmpf  Date conversion for HTTP date formats        LWWWP
::Headers      bmpO  Class encapsulating HTTP Message headers     LWWWP
::Message      bmpO  Base class for Request/Response              LWWWP
::Request      bmpO  Class encapsulating HTTP Requests            LWWWP
::Response     bmpO  Class encapsulating HTTP Responses           LWWWP
::Status       bmpf  HTTP Status code processing                  LWWWP
::Negotiate    bmpf  HTTP content negotiation                     LWWWP

HTTPD::
::UserAdmin    bdpO  Management of server user databases          DOUGM
::GroupAdmin   bdpO  Management of server group databases         DOUGM
::Authen       bdpO  Preform HTTP Basic and Digest Authentication DOUGM
::Config       cdpO  Management of server configuration files     DOUGM
::Access       cdpO  Management of server access control files    DOUGM

WWW::
::References   cdpf  Manage a collection of reference items       JJDG
::Robot        adpO  Web traversal engine for robots & agents     NEILB
::RobotRules   ampO  Parse /robots.txt file                       LWWWP
::Search       adpO  Front-end to Web search engines              JOHNH

LWP::                Libwww-perl-5
::MediaTypes   Rmpf  Media types and mailcap processing           LWWWP
::Simple       Rmpf  Simple procedural interface to libwww-perl   LWWWP
::UserAgent    RmpO  A WWW UserAgent class                        LWWWP
::RobotUA      RmpO  A UserAgent for robot applications           LWWWP
::Protocol     RmpO  LWP support for URL schemes (http, file etc) LWWWP

MIME::
::Base64       Rdpf  Encode/decode Base 64 (RFC 1521)             GAAS
::QuotedPrint  Rdpf  Encode/decode Quoted-Printable               GAAS
::Decoder      adpO  OO interface for decoding MIME messages      ERYQ
::Entity       adpO  An extracted and decoded MIME entity         ERYQ
::Head         adpO  A parsed MIME header                         ERYQ
::IO           adpO  Simple I/O handles for filehandles/scalars   ERYQ
::Latin1       adpO  Encoding 8-bit Latin-1 as 7-bit ASCII        ERYQ
::Lite         bdpO  Single module for composing simple MIME msgs ERYQ
::Parser       adpO  Parses streams to create MIME entities       ERYQ
::ParserBase   adpO  For building your own MIME parser            ERYQ
::Words        cdpf  Encode/decode RFC1522-escaped header strings ERYQ

Netscape::
::Cache        bdpO  Access Netscape cache files                  SREZIC
::History      bdpO  Class for accessing Netscape history DB      NEILB
::HistoryURL   bdpO  Like a URI::URL, but with visit time         NEILB

CCI            i     Common Client Interface for WWW browsers     DOUGM
CGI_Lite       MnpO  Light-weight interface for fast apps         SHGUN
FCGI           Rdcf  Fast CGI (requires sfio)                     SKIMO
Apache         RdcO  Interface to the Apache server API           DOUGM !

For Apache see also http:by-module/Apache/apache-modlist.html


_______________________________________________________________________

16) Server and Daemon Utilities

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
EventServer    RupO  Triggers objects on i/o, timers & interrupts JACKS
::Functions    Rupf  Utility functions for initializing servers   JACKS
::*Wrapper     Rupf  Bunch of wrappers for different server types JACKS
::Gettimeofday Rupr  gettimeofday syscall wrapper                 JACKS
::Signal       Rupr  signalhandler for the eventserver            JACKS

Server::Server::
::EventDriven  RupO  See 'EventServer' (compatibility maintained) JACKS

Server::Echo::
::MailPipe     cup   A process which accepts piped mail           JACKS
::TcpDForking  cup   TCP daemon which forks clients               JACKS
::TcpDMplx     cup   TCP daemon which multiplexes clients         JACKS
::TcpISWFork   cup   TCP inetd wait process, forks clients        JACKS
::TcpISWMplx   cup   TCP inetd wait process, multiplexes clients  JACKS
::TcpISNowait  cup   TCP inetd nowait process                     JACKS
::UdpD         cup   UDP daemon                                   JACKS
::UdpIS        cup   UDP inetd process                            JACKS

Server::Inet::
::Functions    cdpf  Utility functions for Inet socket handling   JACKS
::Object       cupO  Basic Inet object                            JACKS
::TcpClientObj cupO  A TCP client (connected) object              JACKS
::TcpMasterObj cupO  A TCP master (listening) object              JACKS
::UdpObj       cupO  A UDP object                                 JACKS

Server::FileQueue::
::Functions    cupf  Functions for handling files and mailboxes   JACKS
::Object       cupO  Basic object                                 JACKS
::DirQueue     cupO  Files queued in a directory                  JACKS
::MboxQueue    cupO  Mail queued in a mail box                    JACKS

Server::Mail::
::Functions    cupf  Functions for handling files and mailboxes   JACKS
::Object       cupO  Basic mail object                            JACKS

MailBot        cdpO  Archive server, listserv, auto-responder     RHNELSON

_______________________________________________________________________

17) Archiving, Compression and Conversion

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Compress::
::Zlib         adcO  Interface to the Info-Zip zlib library       PMQS

Convert::
::BER          adpO  Class for encoding/decoding BER messages     GBARR
::BinHex       cdpO  Convert to/from RFC1741 HQX7 (Mac BinHex)    ERYQ
::UU           bdpf  UUencode and UUdecode                        ANDK

AppleII::
::Disk         bdpO  Read/write Apple II disk image files         CJM
::ProDOS       bdpO  Manipulate files on ProDOS disk images       CJM
::DOS33        i     Manipulate files on DOS 3.3 disk images      CJM
::Pascal       i     Manipulate files on Apple Pascal disk images CJM

Archive::
::Tar          adpO  Read, write and manipulate tar files         CDYBED

_______________________________________________________________________

18) Images, Pixmap and Bitmap Manipulation, Drawing and Graphing

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
GD             adcO  GIF editing/painting/manipulation            LDS
OpenGL         adcf  Interface to OpenGL drawing/imaging library  ADESC
PGPLOT         Rdof  PGPLOT plotting library - scientific graphs  KGB
PixDraw        adcO  Drawing and manipulating true color images   KSB
GIFgraph       ad    Package to generate GIF graphs, uses GD.pm   MVERB

VRML::         adpO  VRML primitives and ext. to create scenes    HPALM 
::VRML1        adpO  VRML primitives and ext. with VRML 1.x       HPALM
::VRML2        idpO  VRML primitives and ext. with VRML 2.0       HPALM

Graphics::
::Simple       idcO  Simple drawing primitives                    NEERI
::Turtle       idp   Turtle graphics package                      NEERI

Image::
::ColorSpace   id    transform colors between colorspaces         JONO
::Magick       RdcO  Read, query, transform, and write images     JCRISTY
::Size         Rdpf  Measure size of images in common formats     RJRAY

Chart::
::Base         a     Business charts                              MKRUSE

ThreeD         i     Namespace root for all kinds of 3D modules   ADESC
RenderMan      a     Manipulate RenderMan objects                 GMLEWIS +

_______________________________________________________________________

19) Mail and Usenet News

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Mail::
::Address      adpf  Manipulation of electronic mail addresses    GBARR
::Internet     adpO  Functions for RFC822 address manipulations   GBARR
::MIME         adpO  Extends Mail::Internet to understand MIME    GBARR
::Cap          adpO  Parse mailcap files as specified in RFC 1524 GBARR
::Send         adpO  Simple interface for sending mail            GBARR
::Mailer       adpO  Simple mail agent interface (see Mail::Send) GBARR
::Alias        adpO  Reading/Writing/expanding of mail aliases    GBARR
::Util         adpf  Mail utilities (for by some Mail::* modules) GBARR
::MH           adcr  MH mail interface                            MRG
::POP3Client   bdpO  Support for clients of POP3 servers          SDOWD
::Folder       adpO  Base-class for mail folder handling          KJOHNSON


News::
::Gateway      cdpO  Mail-to-news gateway and robomoderator       RRA
::NNTPClient   bdpO  Support for clients of NNTP servers          RVA
::Newsrc       adpO  Manage .newsrc files                         SWMCD

NNTP::
::Server       i     Support for an NNTP server                   JOEHIL

NNML::
::Server       adpO  An simple RFC 977 NNTP server                ULPFR

_______________________________________________________________________

20) Control Flow Utilities (callbacks and exceptions etc)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Religion       adpr  Control where you go when you die()/warn()   KJALB
Callback       RdpO  Define easy to use function callback objects MUIR
AtExit         Rdpr  atexit() function to register exit-callbacks BRADAPP


_______________________________________________________________________

21) File Handle, Directory Handle and Input/Output Stream Utilities

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
IO::
::Dir          cdpO  Directory handle objects and methods         GBARR
::Expect       cdpO  Expect-like operations on an IO::Handle      GBARR
::File         cdpO  Methods for disk file based i/o handles      GBARR
::Format       adpO  Treat perl formats as objects                SBECK
::Handle       cdpO  Base class for input/output handles          GBARR
::Pipe         cdpO  Methods for pipe handles                     GBARR
::Ptty         adcf  Pseudo terminal interface functions          GBARR
::Pty          cdpO  Methods for pseudo-terminal allocation etc   PEASE
::STREAMS      i cO  Methods for System V style STREAMS control
::Scalar       idpO  An I/O handle on a scalar                    ERYQ
::ScalarArray  idpO  An I/O handle on a ref to array of scalars   ERYQ
::Seekable     cdpO  Methods for seekable input/output handles    GBARR
::Select       adpO  Object interface to system select call       GBARR
::Socket       cdpO  Methods for socket input/output handles      GBARR
::Tee          RdpO  Multiplex output to multiple handles         CCSHAN +
::WrapHandle   idpO  Wrap old-style FHs in IO::-like interface    ERYQ

FileHandle     SupO  File handle objects and methods              P5P
FileCache      Supf  Keep more files open than the system permits P5P
DirHandle      SupO  Directory handle objects and methods         CHIPS
SelectSaver    SupO  Save and restore selected file handle        CHIPS
Selectable     cdpO  Event-driven I/O streams                     MUIR

Log::
::Topics       Rdpf  Control flow of topic based logging messages JARW

_______________________________________________________________________

22) Microsoft Windows Modules

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Win32::
::AdminMisc    Rdcf  Misc admin and net functions                 DAVEROTH
::EventLog     adcf  Interface to Win32 EventLog functions        WIN32
::FUtils       bdcf  Implements missing File Utility functions    JOCASA
::GD           RdcO  Win32 port of the GD extension (gif module)  DAVEROTH
::Message      bdcf  Network based message passing                DAVEROTH
::NetAdmin     adcf  Interface to Win32 NetAdmin functions        WIN32
::NetResource  adcf  Interface to Win32 NetResource functions     WIN32
::ODBC         Rd+O  ODBC interface for accessing databases       DAVEROTH
::OLE          adcf  Interface to OLE API functions               WIN32
::Pipe         Rd+O  Named Pipes and assorted function            DAVEROTH
::Process      adcf  Interface to Win32 Process functions         WIN32
::Registry     adcf  Interface to Win32 Registry functions        WIN32
::WinError     adcf  Interface to Win32 WinError functions        WIN32

WinNT          cdcf  Interface to Windows NT specific functions   WIN32
NT             cdcf  Old name for WinNT - being phased out        WIN32

Win95          i     Interface to Windows 95 specific functions   WIN32


_______________________________________________________________________

23) Miscellaneous Modules

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Archie         Rdpf  Archie queries via Prospero ARDP protocol    GBOSS
Bundle         i     Namespace reserved for modules collections   ANDK
CPAN           RdpO  Perl Archive browse and download             ANDK
CreditCard     Rdpf  Credit card number check digit test          JONO
Neural         ad+O  Generic simulation of neural networks        LUKKA
Nexus          cdcO  Interface to Nexus (threads/ipc/processes)   RDO
Pcap           i     An interface for LBL's packet capture lib    AMOSS
Roman          Rdpf  Convert Roman numbers to and from Arabic     OZAWA
SDDF           cd+O  Interface to Pablo Self Defining Data Format FIS
Wais           Rdcf  Interface to the freeWAIS-sf libraries       ULPFR

Bio::
::*            i     Utilities for molecular biology              SEB

Remedy::
::AR           adcO  Interface to Remedy's Action Request API     RIK

ARS            Rd??  Interface to Remedy's Action Request API     JMURPHY

Psion::
::Db           idpO  Handle Psion palmtop computer database files IANPX

Agent          bdpO  Supplies Agentspace methods for perl         JDUNCAN
NetObj         adpO  Module loading in real time over TCP/IP      JDUNCAN

Penguin::
::Easy         RdpO  Provides quick, easy access to Penguin API   JDUNCAN

Print::
::Label        i     Format address labels                        JONO

BarCode::
::UPC          i     Produce PostScript UPC barcodes              JONO

Audio::
::Sox          i     sox sound library as one or more modules     NI-S

Logfile        RdpO  Generic methods to analyze logfiles          ULPFR

SyslogScan::   
::SyslogEntry  bdpO  Parse UNIX syslog                            RHNELSON
::SendmailLine bdpO  Summarize sendmail transactions              RHNELSON

=======================================================================


           Part 3 - Big Projects Registry
           ==============================


This section of the Module List is devoted to listing "Big Projects".
I don't want to define Big (or even Project) here. Hopefully the items
below speak for themselves. Almost all are just ideas, though some have
been dabbled with and some are active projects.

These are ideas for people with very strong skills and lots of time.
Please talk, and listen, to Larry and the perl5-porters _before_
starting to do any work on projects which relate to the core
implementation of Perl.

Ask not when these will be implemented, ask instead how you can help
implement them.


1) Items in the Todo File

The Todo supplied with Perl lists over 50 items in categories ranging
from "Would be nice to have" to "Vague possibilities".

Contacts: P5P


2) Multi-threading

This is really two projects. True threads (e.g., POSIX) using multiple
independant perl interpreter structures and simple timeslicing of
'tasks' within a single perl interpreter. True threads requires
operating system support or an external thread library, simple
timeslicing does not (and should be portable to all platforms).

Malcolm Beattie <mbeattie@sable.ox.ac.uk> has done extensive work in
this area and is folding this work into Perl now for version 5.005 or
5.006.

Contacts: MICB P5P


3) Object Management Group CORBA & IDL

Work is underway on the COPE mailing list, led by Bart Schuller, to
implement a Perl binding for CORBA. See http://www.lunatech.com/cope/

Contacts: COPEML BARTS


4) Expand Tied Array Interface

LEN, PUSH, POP, SHIFT, UNSHIFT and a fallback to SPLICE are needed.
Complicated by very widespread use of arrays within perl internals.

Contacts: P5P CHIPS


5) Extend Yacc To Write XS Code

Some version of yacc, like byacc, should be converted to spit out an OO
.xs and .pm implementing a parser. Jake Donham's work so far is
available in his CPAN directory http://www.perl.com/CPAN/authors/id/JAKE.

Contacts: JAKE NI-S P5P


6) Approximate Matching Regular Expressions

Add support for approximate matching m/.../a (like the agrep utility).

Contacts: JHI


=======================================================================


           Part 4 - Standards Cross-reference
           ==================================

This section aims to provide a cross reference between standards that
exist in the computing world and perl modules which have been written
to implement or interface to those standards.

It also aims to encourage module authors to consider any standards that
might relate to the modules they are developing.

_______________________________________________________________________

1)   IETF - Internet Engineering Task Force (RFCs)


Standard   Description                                   Module Name
--------   -----------                                   -----------
RFC821     Simple Mail Transfer Protocol                 Net::SMTP
RFC822     Internet Mail Header                          Mail::Header
RFC822     Internet Mail addresses                       Mail::Address
RFC867     Daytime Protocol                              Net::Time
RFC868     Time Protocol                                 Net::Time
RFC959     File Transfer Protocol                        Net::FTP
RFC977     A minimal NNTP Server                         NNML::Server
RFC977     Network News Transfer Protocol                Net::NNTP
RFC1035, RFC1183, RFC1706
           Domain names, implementation & specification  Net::DNS
RFC1123    Date conversion routines                      HTTP::Date
RFC1321    MD5 Message-Digest Algorithm                  MD5
RFC1413    Identification Protocol                       Net::Ident
RFC1521    Encode/decode quoted-printable strings        MIME::QuotedPrint
RFC1592    Simple Network Management Protocol            Net::SNMP
RFC1738    Uniform Resource Locators                     URI::URL
RFC1777    Lightweight Directory Access Protocol         Net::LDAP
RFC1861    Simple Network Pager Protocol                 Net::SNPP
RFC1866    Encode/decode HTML entities in a string       HTML::Entities
RFC1939    Post Office Protocol 3                        Net::POP3
RFC1960    String Representation of LDAP Search Filters  Net::LDAP::Filter
RFC2045    Base64 encoding                               MIME::Base64
_______________________________________________________________________

2)   ITU - International Telegraph Union (X.*)


Standard   Description                                   Module Name
--------   -----------                                   -----------
X.209      Basic Encoding Rules for ASN.1                Convert::BER
_______________________________________________________________________

3)   ISO - International Standards Organization (ISO*)


Standard   Description                                   Module Name
--------   -----------                                   -----------
ISO/R 2015-1971
           Date calculations for the Gregorian calendar  Date::DateCalc
ISO639     Two letter codes for language identification  Locale::Language
ISO3166    Two letter codes for country identification   Locale::Country

=======================================================================


           Part 5 - Who's Who and What's Where
           ===================================


1) Information / Contact Reference Details (in alphabetical order)

The following list of email addresses is based on the credentials
stored on the automated Perl Authors Upload Server (PAUSE). If any of
the details is not up to date, you're requested to visit
http://www.perl.com/CPAN/modules/04pause.html, where you will find a pointer
to a CGI script that lets you edit the database entries yourself.

  Ref      Contact Details
  -----    --------------------------------------------------------------
  ABURLISON Alan Burlison <Alan.Burlison@UK.Sun.COM>
  ABW      Andy Wardley <abw@peritas.com>
  ACALPINI Aldo Calpini <dada@divinf.it>
  ADESC    Alligator Descartes <descarte@hermetica.com>
  AGENTML  Mailing List For Perl5 Agents
           Send email to perl5-agentr@epitome.hawk.igs.net with the
           body "subscribe <emailaddr>"
  AGUL     Ashish Gulhati <hash@netropolis.org>
  AKSTE    Alan K. Stebbens <aks@sgi.com>
  ALANCITT Alan Citterman <alan@mfgrtl.com>
  ALSCH    Alan Scheinine <scheinin@crs4.it>
  ALTITUDE Alex Tang <altitude@cic.net>
  AMOSS    Amos Shapira <amoss@cs.huji.ac.il>
  AMW      Andrew Wilcox <awilcox@world.std.com>
  ANDK     Andreas Knig <a.koenig@franz.ww.TU-Berlin.DE>
  ANDYD    Andy Dougherty <doughera@lafcol.lafayette.edu>
  APML     The Perl/Apache Mailing List
           Mail to modperl-REQUEST@listproc.itribe.net with body
           "subscribe"
  ARSML    The ARSperl Mailing List
           See http://arsinfo.cit.buffalo.edu/ for mor info.
  ASHER    Aaron Sherman <asherman@bkb.com>
  ASHTED   Ted Ashton <ashted@southern.edu>
  AWIN     Ashley Winters <jql@accessone.com>
  BARTS    Bart Schuller <P.B.Schuller@cuci.nl>
  BBUM     Bill Bumgarner <bbum@friday.com>
  BENLI    Ben Lindstrom <mouring@netnet.net>
  BJEPS    Brian Jepson <bjepson@conan.ids.net>
  BMIDD    William J. Middleton <wjm@best.com>
  BMORGAN  Bruce Morgan <morgan@networks.curtin.edu.au>
  BOBSIDE  Bob Sidebotham <rns@fore.com>
  BPETH    Bill Petheram <petheram@acm.org>
  BPOWERS  Brent B. Powers <powers@ml.com>
  BRADAPP  Brad Appleton <bradapp@enteract.com>
  CAADAMS  Clifford A. Adams <caadams@zynet.com>
  CARL     Carl Declerck <carl@miskatonic.inbe.net>
  CBAIL    Charles Bailey <bailey@genetics.upenn.edu>
  CDONLEY  Clayton Donley <donley@cig.mcel.mot.com>
  CDYBED   Calle Dybedahl <calle@lysator.liu.se>
  CEVANS   Carey Evans <c.evans@clear.net.nz>
  CGIP     The CGI-Perl Developers mailing list
           Mailing list is temporarily closed
  CHIPS    Chip Salzenberg <chip@pobox.com>
  CHOWARTH Colin Howarth <colin@muc.de>
  CHRISCHU Christian Schultze <Christian_Schultze@b.maus.de>
  CHRWOLF  Christophe Wolfhugel <wolf@pasteur.fr>
  CJM      Christopher J. Madsen <ac608@yfn.ysu.edu>
  CMASON   Chris Mason <cmason@ros.res.cmu.edu>
  CNANDOR  Chris Nandor <pudge@pobox.com>
  COLINK   Colin Kuskie <colink@latticesemi.com>
  COPEML   The CORBA Perl Mailinglist
           To join the list, send a mail with just the word subscribe
           in the body to cope-request@lunatech.com (See
           http://www.lunatech.com/cope)
  CTDEAN   Chris Dean <ctdean@aig.jpl.nasa.gov>
  DALEAMON Dale Amon <amon@gpl.com>
  DALGL    Bob Dalgleish <bob.dalgleish@sk.sympatico.ca>
  DANKOGAI Dan Kogai <dankogai@dan.co.jp>
  DANMQ    Daniel M. Quinlan <danq@colorado.edu>
  DAVEROTH Dave Roth <rothd@roth.net>
  DBEAZLEY Dave Beazley <dmb@asator.lanl.gov>
  DBIML    The DBI Mailing Lists
           Subscribe via http://www.fugue.com/dbi. If you can't do
           that then mail to dbi-REQUEST@fugue.com and ask (the human,
           Ted Lemon) to subscribe you to one or more of dbi-announce,
           dbi-users, or dbi-dev.
  DBONNER  David Bonner <dbonner@cs.bu.edu>
  DBRESH   Doug Breshears <breshear@eonet.com>
  DCEPML   The DCE-Perl mailing list
           Mail to majordomo@lists.csupomona.edu with body "subscribe
           dce-perl <your-address>"
  DCONWAY  Damian Conway <damian@cs.monash.edu.au>
  DDUMONT  Dominique Dumont <Dominique_Dumont@grenoble.hp.com>
  DEVEN    Deven T. Corzine <deven@ties.org>
  DEWEG    Douglas E. Wegscheid <wegscd@whirlpool.com>
  DHUNT    Douglas Hunt <dhunt@ucar.edu>
  DMACKS   Daniel Macks <dmacks@netspace.org>
  DMEGG    David Megginson <dmeggins@aix1.uottawa.ca>
  DMO      Darryl Okahata <darrylo@sr.hp.com>
  DMR      Dean Roehrich <roehrich@cray.com>
  DNAD     Dave Nadler <nadler@ug.eds.com>
  DOUGM    Doug MacEachern <dougm@osf.org>
  DSHEPP   Doug "Sirilyan" Sheppard <sirilyan@link.ca>
  DSTALDER Darren Stalder <torin@daft.com>
  DSUGAL   Dan Sugalski <sugalsd@lbcc.cc.or.us>
  DVKLEIN  Daniel V. Klein <dan@klein.com>
  EAYNG    Eric Young <eay@mincom.oz.au>
  EDJORDAN Ed Jordan <ed@fidalgo.net>
  EDLIU    Edward Liu <dhliu@solar.csie.ntu.edu.tw>
  EGROSS   Etienne Grossmann <etienne@isr.isr.ist.utl.pt>
  EHOOD    Earl Hood <ehood@convex.convex.com>
  ELMAR    Elmar Schalueck <Elmar.Schalueck@rz.ruhr-uni-bochum.de>
  ENEGAARD Eric Negaard <lmdejn@lmd.ericsson.se>
  ERICA    Eric Arnold <Eric.Arnold@corp.sun.com>
  ERYQ     Eryq <eryq@enteract.com>
  ESR      Eric S. Raymond <esr@snark.thyrsus.com>
  EVANPRO  Evangelo Prodromou <evangelo@endcontsw.com>
  EWALKER  Edward Walker <edward@nsrc.nus.sg>
  FIS      Frank Ian Smith <frank@ns.array.ca>
  FLEITNER Felix von Leitner <leitner@math.fu-berlin.de>
  FMC      Frederic Chauveau <fmc@pasteur.fr>
  FORS     The "Friends of Randal Schwartz" mailing list
           Mail to majordomo@teleport.com with body "subscribe
           fors-discuss <your-address>"
  FPIVARI  Fabrizio Pivari <Fabrizio.Pivari@agip.it>
  FRAMM    Frederik Ramm <ramm@rz.uni-karlsruhe.de>
  FRANCOC  Franco Callari <franco@cim.mcgill.ca>
  FSG      Felix Sebastian Gallo <fgallo@wellspring.us.dg.com>
  FTASSIN  Fabien Tassin <tassin@eerie.fr>
  GAAS     Gisle Aas <aas@sn.no>
  GAND     Greg Anderson <greg@ftp.netgate.net>
  GARY     Gary Howland <gary@systemics.com>
  GBARR    Graham Barr <gbarr@ti.com>
  GBOSS    Greg Bossert <bossert@ecto.org>
  GEHIC    Gerard Hickey <hickey@ctron.com>
  GLOVER   Mike Glover <glover@credit.erin.utoronto.ca>
  GMLEWIS  Glenn M. Lewis <glenn@gmlewis.com>
  GREGG    Gregg Helt <gregg@fruitfly.berkeley.edu>
  GRICHTER Gerald Richter <richter@ecos.de>
  GSAR     Gurusamy Sarathy <gsar@umich.edu>
  GSM      Joe Marzot <gmarzot@baynetworks.com>
  GSPAF    Gene Spafford <spaf@cs.purdue.edu>
  GUYDX    Guy Decoux <decoux@moulon.inra.fr>
  GWARD    Greg Ward <greg@bic.mni.mcgill.ca>
  HALPOM   Hal Pomeranz <pomeranz@netcom.com>
  HAYASHI  Hiroo HAYASHI <hayashi@pdcd.ilab.toshiba.co.jp>
  HMUELLER Hanno Mueller <hmueller@mail.kabel.de>
  HPALM    Hartmut Palm <palm@gfz-potsdam.de>
  HTOUG    Henrik Tougaard <ht@datani.dk>
  HVDS     Hugo van der Sanden <hv@crypt.compulink.co.uk>
  IANC     Ian Clatworthy <ianc@mincom.co>
  IANPX    Ian Phillipps <ian@dial.pipex.com>
  IFLAN    Ian Flanigan <flan@cs.wustl.edu>
  ILYAZ    Ilya Zakharevich <ilya@math.ohio-state.edu>
  INGOMACH Ingo Macherius <Ingo.Macherius@tu-clausthal.de>
  JACKS    Jack Shirazi <JackS@GemStone.com>
  JAKE     Jake Donham <jaked@well.com>
  JAMCC    Jamie McCarthy <jamie@voyager.net>
  JANPAZ   Jan Pazdziora <adelton@fi.muni.cz>
  JARW     John A.R. Williams <J.A.R.Williams@aston.ac.uk>
  JASONS   Jason E. Stewart <jasons@cs.unm.edu>
  JCMURPHY Jeff Murphy <jcmurphy@smurfland.cit.buffalo.edu>
  JCRISTY  John Cristy <cristy@sympatico.org>
  JDALLMAN John Dallman <jgd@cix.compulink.co.uk>
  JDUNCAN  James Duncan <jduncan@hawk.igs.net>
  JFRIEDL  Jeffrey Friedl <jfriedl@omron.co.jp>
  JGLICK   Jesse N. Glick <jglick@sig.bsh.com>
  JGROENVEL John Groenveld <groenvel@cse.psu.edu>
  JHI      Jarkko Hietaniemi <Jarkko.Hietaniemi@iki.fi>
  JHORWITZ Jeff Horwitz <jhorwitz@umich.edu>
  JHPB     Joseph H. Buehler <jhpb@sarto.gaithersburg.md.us>
  JJDG     Hans de Graaff <J.J.deGraaff@twi.tudelft.nl>
  JKAST    Jason Kastner <jkastner@oboe.calpoly.edu>
  JKEGL    Jeffrey Kegler <jeffrey@best.com>
  JKODIS   John Kodis <kodis@jagunet.com>
  JLEVAN   Jerry LeVan <levan@eagle.eku.edu>
  JMAHAN   J. Michael Mahan <mahanm@nextwork.rose-hulman.edu>
  JMURPHY  Joel Murphy <jmurphy@acsu.buffalo.edu>
  JNH      Joseph N. Hall <joseph@5sigma.com>
  JOCASA   Joe Casadonte <joc@netaxs.com>
  JOEHIL   Joe Hildebrand <joe.hildebrand@twcable.com >
  JOHNH    John Heidemann <johnh@isi.edu>
  JOHNL    Jonathan Leffler <johnl@informix.com>
  JONG     Jong Park <jong@mrc-lmb.cam.ac.uk>
  JONO     Jon Orwant <orwant@media.mit.edu>
  JPC      Jan-Pieter Cornet <johnpc@xs4all.nl>
  JPRAVETZ Jim Pravetz <jpravetz@adobe.com>
  JPRIT    Joshua Pritikin <pritikin@interramp.com>
  JROGERS  Jay Rogers <jay@rgrs.com>
  JROWE    Jeff Rowe <j.p.rowe@larc.nasa.gov>
  JSTOF    John Stoffel <john@wpi.edu>
  JTOBEY   John Tobey <jtobey@user1.channel1.com>
  JV       Johan Vromans <jvromans@squirrel.nl>
  JWAT     John Watson <jwatson@cnj.digex.net>
  JWIED    Jochen Wiedmann <wiedmann@neckar-alb.de>
  KENFOX   Ken Fox <fox@vulpes.com>
  KENSHAN  Chung-chieh Shan <ken@digitas.harvard.edu>
  KEVINA   Kevin Atkinson <kevina@clark.net>
  KGB      Karl Glazebrook <kgb@aaoepp.aao.gov.au>
  KJALB    Kenneth Albanowski <kjahds@kjahds.com>
  KJOHNSON Kevin Johnson <kjj@pobox.com>
  KONDO    Yoshiyuki KONDO <cond@lsi-j.co.jp>
  KRISHPL  Krishna Shamu Sethuraman <krishpl@shamu.studio.sgi.com>
  KSB      Simon Berg <karl@it.kth.se>
  LDS      Lincoln D. Stein <lstein@genome.wi.mit.edu>
  LEIFHED  Leif Hedstrom <leif@netscape.com>
  LFINI    Luca Fini <lfini@arcetri.astro.it>
  LSTAF    Lennart Staflin <lenst@lysator.liu.se>
  LUKKA    Tuomas J. Lukka <Tuomas.Lukka@Helsinki.FI>
  LUSOL    Stephen O. Lidie <lusol@Lehigh.EDU>
  LUTHERH  Luther Huffman <lutherh@stratcom.com>
  LWALL    Larry Wall. Author of Perl. Busy man. <larry@wall.org>
  LWWWP    The libwww-perl mailing list
           Mail to libwww-perl-REQUEST@ics.uci.edu with body
           "subscribe"
  MAHEX    Mark "Hex" Hershberger <mah@cs.tulane.edu>
  MAK      Martijn Koster <mak@surfski.webcrawler.com>
  MARCP    Marc Paquette <Marc.Paquette@crim.ca>
  MARKB    Mark Biggar <mab@wdl.loral.com>
  MARKIM   Mark A. Imbriaco <mark@ITRIBE.NET>
  MARTINB  Martin Bartlett <martin@nitram.demon.co.uk>
  MATTW    Matthew M. Wright <mattw@worldwidemart.com>
  MCPL     The MacPerl mailing list
           Mail to mac-perl-REQUEST@iis.ee.ethz.ch with body
           "subscribe". There is an announcement-only low-volume
           mailing list too with the subscription address
           mac-perl-announce-request@iis.ee.ethz.ch.
  MDARWIN  Matthew Darwin <darwin@loran.com>
  MERGL    Edmund Mergl <E.Mergl@.bawue.de>
  MERLYN   Randal L. Schwartz <merlyn@stonehenge.com>
  MEWP     Michael Peppler <mpeppler@bix.com>
  MFUHR    Michael Fuhr <mfuhr@dimensional.com>
  MGH      Marc Hedlund <hedlund@best.com>
  MHM      Mike Moran <db2perl@austin.ibm.com>
  MICB     Malcolm Beattie <mbeattie@sable.ox.ac.uk>
  MIKEDLR  Michael De La Rue <miked@ed.ac.uk>
  MIKEH    Mike Heins <mikeh@iac.net>
  MIKESTOK Mike Stok <mike@stok.co.uk>
  MJAEG    Michal Jaegermann <michal@ellpspace.math.ualberta.ca>
  MJD      Mark-Jason Dominus <mjd@plover.com>
  MKRUSE   Matt Kruse <mkruse@netexpress.net>
  MMML     The MakeMaker mailing list
           Mail to makemaker-REQUEST@franz.ww.tu-berlin.de with body
           "subscribe"
  MORTY    Mordechai Abzug <mabzug1@gl.umbc.edu>
  MRG      Matthew Green <mrg@mame.mu.oz.au>
  MRJC     Martin RJ Cleaver <Martin.Cleaver@BCS.org.uk>
  MRKAE    Mark R. Kaehny <kaehny@execpc.com>
  MSCHILLI Michael Schilli <mschilli@blacksun.com>
  MSCHWERN Michael G Schwern <schwern@envirolink.org>
  MSHLD    Michael Shields <shields@crosslink.net>
  MUIR     David Muir Sharnoff <muir@idiom.com>
  MVERB    Martien Verbruggen <mgjv@comdyn.com.au>
  NEERI    Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch>
  NEILB    Neil Bowers <neilb@cre.canon.co.uk>
  NEMWS    Nem W Schlecht <nem@abattoir.cc.ndsu.nodak.edu>
  NI-S     Nick Ing-Simmons <nick@ni-s.u-net.com>
  NICO     Nick Gianniotis <nico@acm.org>
  NIGELM   Nigel Metheringham <Nigel.Metheringham@ThePLAnet.net>
  NJENSEN  Neil Jensen <njensen@habaneros.com>
  NNEUL    Nathan Neulinger <nneul@umr.edu>
  NTHIERY  Nicolas Thiry <Nicolas.Thiery@ens.fr>
  NVPAT    Nathan V. Patwardhan <nvp@ora.com>
  NWALSH   Norman Walsh <norm@berkshire.net>
  NWINT    Neil Winton <winton_neil@jpmorgan.com>
  OCROW    Owen Crow <ocrow@crl.com>
  OTISG    Otis Gospodnetic <Otis.Gospodnetic@middlebury.edu>
  OZAWA    OZAWA Sakuro <ozawa@prince.pe.u-tokyo.ac.jp>
  P5P      The Perl5 Porters Mailing List
           Mail to perl5-porters-REQUEST@perl.org with body
           "subscribe"
  PACKRATS The Packrats Mailing List
           Mail to majordomo@cise.ufl.edu with body "subscribe
           perl-packrats <your address>"
  PATM     Pat Martin <pat@bronco.advance.com>
  PEASE    Mark Pease <peasem@primenet.com>
  PEM      Peter Murray <pem@po.cwru.edu>
  PERLDL   The Perl Data Language Mailing List
           Mail subscription requests to
           perldl-request@jach.hawaii.edu with body "subscribe"
  PETERGAL Peter Gallasch <gal@adv.magwien.gv.at>
  PGPML    The PGP Module Mailing List
           Mail to majordomo@dbc-mifco.com with body "subscribe
           perl-pgp <your-address>"
  PGUEN    Philip Guenther <guenther@gac.edu>
  PHENSON  Paul B. Henson <henson@acm.org>
  PHOENIX  Tom Phoenix <rootbeer@teleport.com>
  PKUTS    Peter Kutschera <peter@zditr1.arcs.ac.at>
  PLDAP    Perl LDAP mailing list
           Mail subscription requests to
           perl-ldap-REQUEST@mail.med.cornell.edu with body
           "subscribe"
  PLISTER  Peter Lister <p.lister@cranfield.ac.uk>
  PMKANE   Patrick Michael Kane <modus@enews.com>
  PMQS     Paul Marquess <pmarquess@bfsec.bt.co.uk>
  PRATP    Pratap Pereira <pereira@ee.eng.ohio-state.edu>
  PRYAN    Patrick Ryan <pgryan@geocities.com>
  PSEIBEL  Peter Seibel <seibel@organic.com>
  PVANDRY  Phillip Vandry <vandry@mlink.net>
  PVERD    Philippe Verdret <philippe.verdret@eurolang.fr>
  PVHP     Peter Prymmer <pvhp@lns62.lns.cornell.edu>
  RAM      Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
  RBOW     Richard Bowen <rbowen@rcbowen.com>
  RCAPUTO  Rocco Caputo <troc@shadow.net>
  RDO      Robert Olson <olson@mcs.anl.gov>
  RHNELSON Rolf Harold Nelson <nelson@ultranet.com>
  RHOFER   Robert Hofer <hofer@informatik.uni-muenchen.de>
  RIK      Rik Harris <rik.harris@fulcrum.com.au>
  RJRAY    Randy J Ray <rjray@uswest.com>
  RJS      Robert J Seymour <rseymour@rseymour.com>
  RMOSE    Russell Mosemann <mose@ns.ccsn.edu>
  RNAIMA   Reza Naima <reza@reza.net>
  ROSCH    Roderick Schertler <roderick@argon.org>
  RRA      Russ Allbery <rra@stanford.edu>
  RSE      Ralf S. Engelschall <rse@engelschall.com>
  RURBAN   Reini Urban <rurban@sbox.tu-graz.ac.at>
  RVA      Rodger Anderson <rodger@boi.hp.com>
  SAMPO    Sampo Kellomaki <sampo@neuronio.pt>
  SBECK    Sullivan Beck <sbeck@cise.ufl.edu>
  SCOOPER  Simon Cooper <sc@sgi.com>
  SDOWD    Sean Dowd <dowd@flash.net>
  SEB      Steven Brenner <S.E.Brenner@bioc.cam.ac.uk>
  SEMM     Steve Emmerson <support@unidata.ucar.edu>
  SGEL     Sergio Gelato <gelato@oort.ap.sissa.it>
  SHARI    Davide Migliavacca <davide.migliavacca@inferentia.it>
  SHGUN    Shishir Gundavaram <shishir@ruby.ora.com>
  SHIGIO   Shigio Yamaguchi <shigio@wafu.netgate.net>
  SHIKONO  Shinji KONO <kono@ie.u-ryukyu.ac.jp>
  SHUTTON  Scott Hutton <shutton@pobox.com>
  SKANE    Steve Kane <skane@cse.psu.edu>
  SKIMO    Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
  SKUNZ    Steven L. Kunz <skunz@iastate.edu>
  SMCCAM   Stephen McCamant <alias@mcs.com>
  SMPILL   Steve Pillinger <S.M.Pillinger@cs.bham.ac.uk>
  SPIDB    Spider Boardman <spider@orb.nashua.nh.us>
  SPP      Stephen P Potter <spp@pencom.com>
  SREZIC   Slaven Rezic <eserte@cs.tu-berlin.de>
  SRIRAM   Sriram Srinivasan <sriram@tcs.com>
  STANM    Stan Melax <melax@bioware.com>
  STBEY    Steffen Beyer <sb@sdm.de>
  SWMCD    Steven McDougall <swmcd@world.std.com>
  SZECK    Steve Zeck <viper@kuentos.guam.net>
  TBOUTELL Thomas Boutell <boutell@boutell.com>
  TEKE     Torsten Ekedahl <teke@matematik.su.se>
  TIMB     Tim Bunce <Tim.Bunce@ig.co.uk>
  TIMPX    Tim Goodwin <tim@uunet.pipex.com>
  TKML     The Tk Perl Mailing list
           Mail to majordomo@lists.stanford.edu with body "subscribe
           ptk <your-address>"
  TLP      Travis L Priest <T.L.Priest@LaRC.NASA.GOV>
  TOMC     Tom Christiansen <tchrist@mox.perl.com>
  TOMFA    Tom Fawcett <fawcett@nynexst.com>
  TOMH     Tom Horsley <tom@ssd.csd.harris.com>
  TOMZO    Tom Zoerner <Tom.Zoerner@informatik.uni-erlangen.de>
  TRIAS    Fernando Trias <ftrias@fmrco.com>
  TSANDERS Tony Sanders <sanders@bsdi.com>
  TWENRICH Thomas Wenrich <wenrich@ping.at>
  TYEMQ    Tye McQueen <tye@metronet.com>
  ULPFR    Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de>
  UWEH     Uwe Hollerbach <uweh@bu.edu>
  VKHERA   Vivek Khera <vivek@khera.org>
  VMSML    The VMSPerl Mailing list
           Mail subscription requests to maintainer at
           <bailey@genetics.upenn.edu>
  WATANABE Hirofumi Watanabe <watanabe@ase.ptg.sony.co.jp>
  WIN32    The Perl for Win32 Mailing list
           Mail to majordomo@mail.hip.com with body "subscribe
           Perl-Win32 <your-address>"
  WINKO    Winfried Koenig <win@in.rhein-main.de>
  WPS      William Setzer <William_Setzer@ncsu.edu>
  WSCOT    Wayne Scott <wscott@ichips.intel.com>
  WTOMPSON Wayne Tompson <Wayne.Thompson@Ebay.Sun.COM>
  WYTAN    Wei-Yuen Tan <Wei-Yuen_Tan@hip.com>
  YASU     Yasushi Saito <yasushi@cs.washington.edu>
  YLU      Luke Y. Lu <ylu@mail.utexas.edu>
  YVESP    Yves Paindaveine <yp@gr.osf.org>

2) Perl Frequently Asked Questions (FAQ)

  The FAQ and the Meta-FAQ are available on all CPAN sites in the
  directory doc/FAQs (e.g., http://www.perl.com/CPAN/doc/FAQs/) as well
  as from the RTFM server where you can find all posted FAQs:

    ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/
    ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/lang/perl/

  RTFM mirror sites:

  North America:
    ftp://ftp.uu.net/usenet/news.answers
    ftp://mirrors.aol.com/pub/rtfm/usenet
    ftp://ftp.seas.gwu.edu/pub/rtfm
  Europe:
    ftp://ftp.uni-paderborn.de/pub/FAQ
    ftp://ftp.Germany.EU.net/pub/newsarchive/news.answers
    ftp://ftp.sunet.se/pub/usenet
  Asia:
    ftp://nctuccca.edu.tw/USENET/FAQ
    ftp://hwarang.postech.ac.kr/pub/usenet/news.answers
    ftp://ftp.hk.super.net/mirror/faqs

