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

The Perl 5 Module List       Revision: 2.32 $Date: 1996/10/16 20:49:35 $
======================

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

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)   Introduction
2)   Items in the Todo File
3)   Multi-threading
4)   Object Management Group CORBA & IDL
5)   Expand Tied Array Interface
6)   Tied File Handles
7)   Extend Yacc To Write XS Code

Part 4 - 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.lab.kdd.co.jp/lang/perl/CPAN/
        South Korea
            ftp://ftp.nuri.net/pub/CPAN/
        Taiwan
            ftp://dongpo.math.ncu.edu.tw/perl/CPAN/
    Australasia
        Australia
            ftp://coombs.anu.edu.au/pub/perl/CPAN/
            ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/
        New Zealand
            ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/
    Europe
        Austria
            ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
        Czech Republic
            ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/
        Denmark
            ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
        Finland
            ftp://ftp.funet.fi/pub/languages/perl/CPAN/
        France
            ftp://ftp.ibp.fr/pub/perl/CPAN/
            ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/
        Germany
            ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/
            ftp://ftp.rz.ruhr-uni-bochum.de/pub/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/
        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/
        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://ftp.switch.ch/mirror/CPAN/
        the Netherlands
            ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/
        UK
            ftp://ftp.demon.co.uk/pub/mirrors/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/
        USA
            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.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://uiarchive.cso.uiuc.edu/pub/lang/perl/CPAN/
    South America
        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 4.

For navigating through CPAN you may find the file
modules/01modules.index.html a useful starting place. Or you may prefer
a webified version of this modulelist in the file
modules/00modlist.long.html on the CPAN servers.

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 you part and contribute to the Perl
community where you can. [ end of sermon :-]

Help save the world! Please submit new entries and updates to us so we
can keep this list up-to-date. Send the new or corrected entry by email
to modules@perl.com (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 to the PAUSE site for forwarding on to CPAN. See section
2.9.

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) 1996 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! 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 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

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

   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.

   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.misc and
   comp.lang.perl.modules Usenet newsgroups are read by just about all
   the people who develop modules and they are the best place to ask.

   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) 1996 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").  Don't use a "1.3.2" style version.
   See Exporter.pm for details.

   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.Z).
   See perldoc ExtUtils::MakeMaker.pm for details.


2.10 How to release and distribute a module.

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

   If possible you should place the module into a major ftp archive and
   include details of it's location in your announcement.

   Some notes about ftp archives: Please use a long descriptive file
   name which includes the version number. Most incoming directories
   will not be readable/listable, i.e., you won't be able to see your
   file after uploading it. 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 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.11 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.


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

Perl Pragmatic Modules

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

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

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
::Man          cdpr  converter to man page                        KJALB
::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     i     Utilities/glue code for C<->Perl interfaces  DOUGM
::MakeMaker    SupO  Writes Makefiles for extensions              MMML
::Manifest     Supf  Utilities for managing MANIFEST files        MMML
::Typemap      i     xsubpp typemap handling                      WPS
::Embed        Rdpf  Utilities for embedding Perl in C/C++ apps   DOUGM

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
-----------    ----  -------------------------------------------- -----
POSIX          SupO  An interface to most (all?) of POSIX.1       P5P
Fcntl          Sdcf  Defines fcntl() constants (see File::Lock)   JHI
Ioctl          cdcf  Defines ioctl() constants                    KJALB
Errno          i     Constants from <errno.h> EACCES, ENOENT etc  JHI
Env            Supf  Alias environment variables as perl vars     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

Sys::
::Hostname     Supf  Implements a portable hostname function      P5P
::Syslog       Supf  Provides same functionality as BSD syslog    P5P
::AlarmCall    Rupf  Timeout on any sub. Allows nested alarms     JACKS

Quota          adcf  Disk quota system functions, local & remote  TOMZO

Proc::
::times        adpf  By-name interface to process times function  TOMC
::Forkfunc     Rdpf  Simple lwall-style fork wrapper              MUIR
::Simple       adpO  Fork wrapper with objects                    MSCHILLI

Platform Specific Modules

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

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

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

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

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

OS2::
::ExtAttr      RdcO  (Tied) access to extended attributes         ILYAZ
::PrfDB        RdcO  (Tied) access to .INI-style databases        ILYAZ
::REXX         RdcO  Access to REXX DLLs and REXX runtime         ILYAZ
::FTP          bncf  Access to ftplib interface                   ILYAZ
::UPM          bncf  User Profile Management                      ILYAZ

_______________________________________________________________________

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::
::Cmd          cdpO  For command based protocols (FTP, SMTP etc)  GBARR
::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
::IRC          i     Internet Relay Chat interface                MRG
::Inet         adcO  Internet (IP) socket usage                   SPIDB
::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
::Ping         Supf  Implements TCP/IP ping (currently only echo) PMQS
::Ping         bdpO  Enhanced redesign of the above               RMOSE
::SMTP         adpf  Interface to Simple Mail Transfer Protocol   GBARR
::SNPP         cdpO  Client interface to SNPP protocol            GBARR
::SOCKS        i     TCP/IP access through firewalls using SOCKS  WSCOT
::SSLeay       adcf  Secure Socket Layer (Eric Young's version)   SAMPO !
::TCP          adcO  TCP-specific socket usage                    SPIDB
::Telnet       cdpO  Inheritable Telnet socket object protocol    GBARR
::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

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

RPC::                Remote Procedure Calls (see also DCE::RPC)
::ONC          i     Open Network Computing (Sun) RPC interface   PKUTS

DCE::                Distributed Computing Environment (OSF)
::Registry     bdcO  DCE registry functions                       DOUGM
::rgybase      bdcO  Constants from rgybase.h,rgynbase.h          DOUGM
::Login        bdcO  Interface to login functions                 DOUGM
::login_base   bdcO  Constants from sec_login.h,sec_login_base.h  DOUGM
::Status       bdpr  Tie to *sts.h files                          DOUGM
::UUID         bdcf  Misc uuid functions                          DOUGM
::ACL          cdcO  Interface to Access Control List protocol    DOUGM
::aclbase      cdcO  Constants from aclbase.h                     DOUGM
::RPC          c     Remote Procedure Calls                       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                     DNAD
::Derivative   Rdpr  1st and 2nd order differentiation of data    JARW
::Fortran      Rdpf  Implements Fortran log10 & sign functions    JARW
::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
::Pari         adcf  Interface to the powerful PARI library       ILYAZ
::Prime        i     Prime number testing                         GARY
::RandomPrime  i     Generates random primes of x bits            GARY
::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              JKAST
::ChiSquare    Rdpf  Chi Square test - how random is your data?   JONO

PDL            cdcf  Perl Data Language - numeric analysis env    KGB   +

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   +

Set::
::Scalar       adpO  Set of scalars (inc references)              JHI
::IntegerFast  adcO  Set of positive integers (in C)              STBEY
::IntSpan      adpO  Set of integers newsrc style '1,5-9,11' etc  SWMCD

Date::
::CTime        adpf  Updated ctime.pl with mods for timezones     GBARR
::DateCalc     Rdcf  Various standards based 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::
::gmtime       adpf  A by-name interface for gmtime               TOMC
::localtime    adpf  A by-name interface for localtime            TOMC
::Local        Supf  Implements timelocal() and timegm()          P5P
::HiRes        Rdcf  High resolution time, sleep, and alarm       DEWEG
::CTime        Rdpf  Format Times ala ctime(3) with many formats  MUIR
::ParseDate    Rdpf  Parses many forms of dates and times         MUIR
::JulianDay    Rdpf  Converts y/m/d into seconds                  MUIR
::Timezone     Rdpf  Figures out timezone offsets                 MUIR
::DaysInMonth  Rdpf  Returns the number of days in a month        MUIR
::Zone         Rdpf  Timezone info and translation routines       GBARR

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
::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  Uses Tie::Quick to watch a variable          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  Creates persistent hashrefs or arrayrefs     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


_______________________________________________________________________

7) Database Interfaces (see also Data Types)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
DBI            amcO  Generic Database Interface (see DBD modules) DBIML
DBD::
::Oracle       amcO  Oracle Driver for DBI                        TIMB
::Ingres       i     Ingres Driver for DBI                        TIMB
::Informix     adcO  Informix Driver for DBI                      ADESC
::mSQL         amcO  Msql Driver for DBI                          ADESC
::DB2          adcO  DB2 Driver for DBI                           MHM
::Sybase       cdpO  Sybase Driver for DBI (uses Sybase::CTlib)   MEWP
::QBase        amcO  QBase Driver for DBI                         BENLI

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

Msql           RmcO  Mini-SQL, a light weight SQL database        ANDK
Pg             Rdcf  Postgres95 SQL database interface            MERGL
Datascope      Rdcf  Interface to Datascope RDBMS                 DANMQ
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

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::
::Complete     Supf  Tab word completion using stty raw           WTOMPSON
::ReadKey      Rdcf  Read keystrokes and change terminal modes    KJALB
::Cap          Supf  Basic termcap: Tgetent, Tputs, Tgoto         TSANDERS
::Screen       RdpO  Basic screen + input class (uses Term::Cap)  MRKAE
::Info         adpf  Terminfo interface (currently just Tput)     KJALB
::ReadLine     Sdcf  GNU Readline, history and completion         ILYAZ
::Control      idpf  Basic curses-type screen controls (gotxy)    KJALB
::Gnuplot      adcf  Draw vector graphics on terminals etc        ILYAZ
::Query        Rdpf  Intelligent user prompt/response driver      AKSTE

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::
::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
Wcl            i     Interface to the Widget Creation Library     TOMH
Fresco         cd+O  Interface to Fresco (post X11R6 version)     BPETH


_______________________________________________________________________

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
::stat         adpf  A by-name interface for the stat function    TOMC

Filesys::
::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::
::Edit         adpf  Assorted handy string editing functions      TOMC
::Approx       Rdpf  Approximate string matching and substitution JHI
::Scanf        Rdpf  Implementation of C sscanf function          JHI
::Parity       adpf  Parity (odd/even/mark/space) handling        WINKO
::BitCount     adpf  Count number of "1" bits in strings          WINKO
::MatchMany    adpf  Build fast code to match many patterns       TOMC

Language text related modules

Text::
::Abbrev       Supf  Builds hash of all possible abbreviations    P5P
::ParseWords   Supf  Parse strings containing shell-style quoting HALPOM
::Soundex      Supf  Convert a string to a soundex value          MIKESTOK
::TeX          cdpO  TeX typesetting language input parser        ILYAZ
::Bib          RdpO  Parse refer(1)-style bibliography files      ERYQ
::Tabs         Sdpf  Expand and contract tabs ala expand(1)       MUIR
::Wrap         Sdpf  Wraps lines to make simple paragraphs        MUIR
::Template     bdpO  Expand template text with embedded perl      MJD

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)

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

SGML::
::Element      cdpO  Build a SGML element structure tree          LSTAF
::SP           cd+O  Interface to James Clark's Sp SGML parser    BARTS
SGMLS          RdpO  A Post-Processor for SGMLS and NSGMLS        DMEGG

Font::
::AFM          RdpO  Parse Adobe Font Metric files                GAAS

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

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::
::gettext      Rdcf  Multilanguage messages                       PVANDRY

_______________________________________________________________________

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

PGP            adpO  Simple interface to PGP subprocess via pipes PGPML
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
Kerberos       i     Kerberos IV authentication                   MICB
GSS            i     Generic Security Services API (RFC 1508/9)   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


_______________________________________________________________________

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

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

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
::Entities     bmpf  Encode/decode HTML entities                  LWWWP
::Formatter    ampO  Convert HTML to plain text or Postscript     LWWWP
::Parse        ampO  Parse HTML documents                         LWWWP
::Stream       adpO  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::
::RobotRules   ampO  Parse /robots.txt file                       LWWWP

LWP::                Libwww-perl-5
::MediaTypes   bmpf  Media types and mailcap processing           LWWWP
::Simple       bmpf  Simple procedural interface to libwww-perl   LWWWP
::UserAgent    bmpO  A WWW UserAgent class                        LWWWP
::RobotUA      bmpO  A UserAgent for robot applications           LWWWP
::Protocol::*        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 to existing MIME decoders       ERYQ
::Entity       adpO  An extracted and decoded MIME entity         ERYQ
::Head         adpO  A parsed MIME header                         ERYQ
::Parser       adpO  Parses streams to create MIME entities       ERYQ


_______________________________________________________________________

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


_______________________________________________________________________

17) Archiving, Compression and Conversion

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

Convert::
::UU           bdpf  UUencode and UUdecode                        ANDK


_______________________________________________________________________

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  STANM
PGPLOT         Rdof  PGPLOT plotting library - scientific graphs  KGB
PixDraw        adcO  Drawing and manipulating true color images   KSB
VRML           cdpf  VRML primitives and ext. to create scenes    HPALM

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

Image::
::Size         Rdpf  Measure size of images in common formats     RJRAY


_______________________________________________________________________

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::
::NNTPClient   bdpO  Support for clients of NNTP servers          RVA
::Newsrc       adpO  Manage .newsrc files                         SWMCD

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

_______________________________________________________________________

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::
::Handle       cdpO  Base class for input/output handles          GBARR
::Pipe         cdpO  Methods for pipe handles                     GBARR
::Socket       cdpO  Methods for socket input/output handles      GBARR
::Seekable     cdpO  Methods for seekable input/output handles    GBARR
::Select       adpO  Object interface to system select call       GBARR
::File         cdpO  Methods for disk file based i/o handles      GBARR
::Pty          cdpO  Methods for pseudo-terminal allocation etc   PEASE
::STREAMS      i cO  Methods for System V style STREAMS control

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::
::OLE          adcf  Interface to OLE API functions               WIN32
::EventLog     adcf  Interface to Win32 EventLog functions        WIN32
::NetAdmin     adcf  Interface to Win32 NetAdmin functions        WIN32
::NetResource  adcf  Interface to Win32 NetResource functions     WIN32
::WinError     adcf  Interface to Win32 WinError functions        WIN32
::Registry     adcf  Interface to Win32 Registry functions        WIN32
::Process      adcf  Interface to Win32 Process functions         WIN32
::FUtils       bdcf  Implements missing File Utility functions    JOCASA

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
CPAN           adpO  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

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
           ==============================


1) Introduction

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

These are ideas for people with very strong skills and lots of time.
Please talk, and listen, to Larry _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.


2) Items in the Todo File

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

Contacts: LWALL P5P


3) 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.

Contacts: LWALL MICB P5P


4) Object Management Group CORBA & IDL

OMG's (Object Management Group) CORBA (Common Object Request Broker
Architecture) specification provides the standard interface definition
between OMG-compliant objects.  IDL (Interface Definition Language) is
the base mechanism for object interaction. Perhaps an extended IDL
compiler which can write XS code would be a good way forward.

Contacts: ASHER, JACKS, DMR
Also:
    ftp://omg.org/pub/OMG_IDL/
    http://www.cs.cornell.edu/Info/People/maffeis/electra.html
    http://www.faslab.com/fresco/HomePage.html (re DISH Tcl+CORBA DII)
    ftp://ftp.isi.edu (ORBeline)
    ftp://labrea.stanford.edu
    ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html
    ftp://ftp.th-darmstadt.de/pub/networking/platforms/CORBA/
    idl-cfe@sun.com

Inter-Language Unification system (ILU).  Similar to a CORBA ORB, with some
omissions and extensions.  Supports OMG CORBA IDL.

Contacts: DMR
Also:
    ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html


5) 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 LWALL


6) Tied File Handles

It is a long term goal to allow perl file handles to be tied. This will
probably be based on the sfio (Safe Fast IO) library.

Contacts: PMQS TIMB P5P LWALL NI-S GBARR


7) Extend Yacc To Write XS Code

Some version of yacc, like byacc or bison, should be converted to spit
out an OO .xs and .pm implementing a parser.

Contacts: NI-S P5P LWALL



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


           Part 4 - 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
  -----    --------------------------------------------------------------
  ADESC    Alligator Descartes <descarte@mcqueen.com>
  AGUL     Ashish Gulhati <hash@netropolis.org>
  AKSTE    Alan K. Stebbens <aks@hub.ucsb.edu>
  ALSCH    Alan Scheinine <scheinin@crs4.it>
  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"
  ASHER    Aaron Sherman <ajs@openmarket.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>
  BOBSIDE  Bob Sidebotham <rns@fore.com>
  BPETH    Bill Petheram <petheram@acm.org>
  BPOWERS  Brent B. Powers <powers@ml.com>
  BRADAPP  Brad Appleton <Brad_Appleton-GBDA001@email.mot.com>
  CAADAMS  Clifford A. Adams <caadams@zynet.com>
  CBAIL    Charles Bailey <bailey@genetics.upenn.edu>
  CGIP     The CGI-Perl Developers mailing list
           Mail to CGI-perl-REQUEST@webstorm.com with body "subscribe"
  CHIPS    Chip Salzenberg <chip@atlantic.net>
  CHOWARTH Colin Howarth <colin@muc.de>
  CJM      Christopher J. Madsen <ac608@yfn.ysu.edu>
  CNANDOR  Chris Nandor <pudge@pcix.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>
  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.
  DEWEG    Douglas E. Wegscheid <wegscd@whirlpool.com>
  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>
  EAYNG    Eric Young <eay@mincom.oz.au>
  EHOOD    Earl Hood <ehood@convex.convex.com>
  ELMAR    Elmar Schalueck <Elmar.Schalueck@rz.ruhr-uni-bochum.de>
  ERICA    Eric Arnold <Eric.Arnold@corp.sun.com>
  ERYQ     Eryq <eryq@rhine.gsfc.nasa.gov>
  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>
  FRANCOC  Franco Callari <franco@cim.mcgill.ca>
  FSG      Felix Sebastian Gallo <fsg@coriolan.amicus.com>
  GAAS     Gisle Aas <aas@sn.no>
  GAND     Greg Anderson <greg@ftp.netgate.net>
  GARY     Gary Howland <gary@systemics.com>
  GBARR    Graham Barr <Graham.Barr@tiuk.ti.com>
  GBOSS    Greg Bossert <bossert@ecto.org>
  GEHIC    Gerard Hickey <hickey@ctron.com>
  GLOVER   Mike Glover <glover@credit.erin.utoronto.ca>
  GREGG    Gregg Helt <gregg@fruitfly.berkeley.edu>
  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>
  HALPOM   Hal Pomeranz <pomeranz@netcom.com>
  HPALM    Hartmut Palm <palm@gfz-potsdam.de>
  IANPX    Ian Phillipps <ian@dial.pipex.com>
  ILYAZ    Ilya Zakharevich <ilya@math.ohio-state.edu>
  JACKS    Jack Shirazi <JackS@GemStone.com>
  JAMCC    Jamie McCarthy <jamie@voyager.net>
  JARW     John A.R. Williams <J.A.R.Williams@aston.ac.uk>
  JCMURPHY Jeff Murphy <jcmurphy@smurfland.cit.buffalo.edu>
  JDALLMAN John Dallman <jgd@cix.compulink.co.uk>
  JDUNCAN  James Duncan <jduncan@hawk.igs.net>
  JFRIEDL  Jeffrey Friedl <jfriedl@omron.co.jp>
  JHI      Jarkko Hietaniemi <Jarkko.Hietaniemi@iki.fi>
  JJDG     Hans de Graaff <J.J.deGraaff@twi.tudelft.nl>
  JKAST    Jason Kastner <jkastner@oboe.calpoly.edu>
  JKEGL    Jeffrey Kegler <jeffrey@best.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>
  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>
  JROGERS  Jay Rogers <jay@ampersand.com>
  JSTOF    John Stoffel <john@wpi.edu>
  JV       Johan Vromans <jvromans@squirrel.nl>
  JWAT     John Watson <jwatson@cnj.digex.net>
  KGB      Karl Glazebrook <kgb@aaoepp.aao.gov.au>
  KJALB    Kenneth Albanowski <kjahds@kjahds.com>
  KJOHNSON Kevin Johnson <kjj@primenet.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>
  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>
  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>
  MGH      Marc Hedlund <hedlund@best.com>
  MHM      Mike Moran <db2perl@austin.ibm.com>
  MICB     Malcolm Beattie <mbeattie@sable.ox.ac.uk>
  MIKEH    Mike Heins <mikeh@iac.net>
  MIKESTOK Mike Stok <mike@stok.co.uk>
  MJD      Mark-Jason Dominus <mjd@plover.com>
  MMML     The MakeMaker mailing list
           Mail to makemaker-REQUEST@franz.ww.tu-berlin.de with body
           "subscribe"
  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 <schilli@tep.e-technik.tu-muenchen.de>
  MSHLD    Michael Shields <shields@crosslink.net>
  MUIR     David Muir Sharnoff <muir@idiom.com>
  NEERI    Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch>
  NEILB    Neil Bowers <neilb@khoral.com>
  NEMWS    Nem W Schlecht <nem@abattoir.cc.ndsu.nodak.edu>
  NI-S     Nick Ing-Simmons <nik@tiuk.ti.com>
  NICO     Nick Gianniotis <nico@acm.org>
  NIGELM   Nigel Metheringham <Nigel.Metheringham@ThePLAnet.net>
  NTHIERY  Nicolas Thiry <Nicolas.Thiery@ens.fr>
  NWINT    Neil Winton <nwinton@axion.bt.co.uk>
  OZAWA    OZAWA Sakuro <ozawa@prince.pe.u-tokyo.ac.jp>
  P5P      The Perl5 Porters Mailing List
           Mail to perl5-porters-REQUEST@nicoh.com 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>
  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>
  PKUTS    Peter Kutschera <peter@zditr1.arcs.ac.at>
  PMQS     Paul Marquess <pmarquess@bfsec.bt.co.uk>
  PRATP    Pratap Pereira <pereira@ee.eng.ohio-state.edu>
  PSEIBEL  Peter Seibel <seibel@organic.com>
  PVANDRY  Phillip Vandry <vandry@mlink.net>
  PVERD    Philippe Verdret <phd@eurolang.fr>
  PVHP     Peter Prymmer <pvhp@lns62.lns.cornell.edu>
  RAM      Raphael Manfredi <ram@hptnos02.grenoble.hp.com>
  RBOW     Richard Bowen <rbowen@rcbowen.com>
  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>
  ROSCH    Roderick Schertler <roderick@gate.net>
  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 <beck@qtp.ufl.edu>
  SDOWD    Sean Dowd <ssd@mmts.eds.com>
  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>
  SHGUN    Shishir Gundavaram <shishir@acs.bu.edu>
  SHIKONO  Shinji KONO <kono@ie.u-ryukyu.ac.jp>
  SHUTTON  Scott Hutton <shutton@pobox.com>
  SKIMO    Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
  SKUNZ    Steven L. Kunz <skunz@iastate.edu>
  SPIDB    Spider Boardman <spider@orb.nashua.nh.us>
  SPP      Stephen P Potter <spp@pencom.com>
  SRIRAM   Sriram Srinivasan <sriram@tcs.com>
  STANM    Stan Melax <stan@skyler.arc.ab.ca>
  STBEY    Steffen Beyer <sb@sdm.de>
  SWMCD    Steven McDougall <swm@cric.com>
  TIMB     Tim Bunce <Tim.Bunce@ig.co.uk>
  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@helix.fmrco.com>
  TSANDERS Tony Sanders <sanders@bsdi.com>
  TYEMQ    Tye McQueen <tye@metronet.com>
  ULPFR    Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de>
  UWEH     Uwe Hollerbach <uweh@bu.edu>
  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 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

