The Perl 5 Module List

Maintained by Tim Bunce and Andreas König <modules@perl.org>;
$Revision$ $Date$ -*- coding:utf-8 -*-

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
5) Namespace Coordination

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, Hardware Drivers
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
24) Interface Modules to Commercial Software

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

4.1) IETF - Internet Engineering Task Force (RFCs)
4.2) ITU - International Telegraph Union (X.*)
4.3) ISO - International Standards Organization (ISO*)

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

5.1) Information / Contact Reference Details
5.2) Perl Frequently Asked Questions (FAQ) Files

  ------------------------------------------------------------------------

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 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. CPAN is a worlswide network of
mirrors and you can find your closest mirror in the file
http://www.cpan.org/SITES.html

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.

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 . 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 fed into CPAN on a semi-regular basis. Its relative path
within a CPAN mirror is in modules/00modlist.long.html .

Editorial Information and Copyright

This document is Copyright (c) 1997-2000 by Tim Bunce and Andreas König.
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.cpan.org/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.

Since the CPAN is huge and growing daily, it's essential that module authors
choose names which lend themselves to browsing. That means minimizing
acronyms, cute names, and jargon. Also, don't make up a new top level
category unless you have a good reason; please choose an already-existing
category when possible. Send mail to modules@perl.org before you upload, so
we can help you select a name.

If you insist on a name that we consider inappropriate, we won't prevent you
from uploading your module -- but it'll remain in your "author" directory
and won't be directly visible from CPAN/modules/by-module.

We appreciate the efforts of the contributors who have helped make the CPAN
the world's largest reusable code repository. Please help us enhance it by
working with us to choose the best name possible.

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 an underscore in the top
level name 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$=~/\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.cpan.org/modules/04pause.html

or upload to:

ftp://pause.kbx.de/incoming

and notify upload@pause.kbx.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:

5) Namespace Coordination

The maintainers of the module list are not the Internic for perl namespaces.
They do neither sell namespaces nor can they establish property rights. What
they try to do is to minimize namespace clashes and maximize usablility of
the CPAN archive by setting up a catalogue of modules and control the
indexers. Time permitting, they will also try to give advice for what they
think is a proper usage of the namespace.

It is an important part of the namespace concept that the module list
maintainers do not guarantee to you that somebody else won't use the, say,
Foo::Bar namespace. The upload area is not censored except for abuse. People
are free to upload any modules they like. Instead, there are several levels
of protection for your namespaces:

a) The most important is the module list which actually lists and proclaims
your namespace.

b) The second is the indexing mechanism of the CPAN. Modules are indexed on
a first-come-first-serve basis. The module namespace that is uploaded for
the first time ever gets indexed, but not the module of the second one who
tries to use the same namespace.

c) As the whole process is trying to benefit the community, all parties are
subject to a wider monitoring within the community. This is sometimes
referred to as security by visibility.

d) So the next level of namespace protection is the common sense. Your own
common sense. Help to save the world. If you get the impression that
something goes wrong with regard to namespaces, please write to
modules@perl.org and let them know.

e) The perhaps most interesting namespace protection is provided by the perl
symbol table itself. A namespace Foo:: is just a package name and its
relationship to a namespace Foo::Bar:: is not predetermined whatsoever. The
two namespaces can be closely or loosely related or not related at all, but
what's most important, they can be writen by different authors who may work
rather independently from each other. So if you have registered any
namespace, it does not mean that you own the whole namespace tree that
starts there. If you are registered as the contact for Foo::Bar, you are not
necessarily also associated with Foo::Bar::Baz.

f) In a few rare cases the module list people restrict indexing of certain
categories. For example: DBI::* under the control of Tim Bunce Sun::* under
the control of Sun Microsystems

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.modules. 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*):
   *
        o i - Idea, listed to gain consensus or as a placeholder
        o c - under construction but pre-alpha (not yet released)
        o a/b - Alpha/Beta testing
        o R - Released
        o M - Mature (no rigorous definition)
        o S - Standard, supplied with Perl 5

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

   * L - Language Used:
   *
        o p - Perl-only, no compiler needed, should be platform independent
        o c - C and perl, a C compiler will be needed
        o h - Hybrid, written in perl with optional C code, no compiler
          needed
        o + - C++ and perl, a C++ compiler will be needed
        o o - perl and another language other than C or C++

   * I - Interface Style
   *
        o f - plain Functions, no references used
        o h - hybrid, object and function interfaces available
        o n - no interface at all (huh?)
        o r - some use of unblessed References or ties
        o 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.modules.

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 finished. 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            Supf Disable named opcodes when compiling code    TIMB
Taint             bdpf Utilities related to tainting                PHOENIX

Perl Pragmatic Modules

constant          Supf Define compile-time constants                P5P
diagnostics       Sdpf For reporting perl diagnostics in full form  TOMC
enum              cdpf resemble enumerated types in C               ZENIN
integer           Supf Controls float vs. integer arithmetic        P5P
less              Supf Controls optimisations (yet unimplemented)   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

Experimental pragmatic modules live in the ex:: namespace

ex::
::implements      RdpO Study in Polymorphism                        PDCAWLEY
::interface       RdpO Another study in polymorphism                PDCAWLEY
::override        Rdpf perl pragma to override core functions       CTWETEN

ex::constant::
::vars            Rdph Perl pragma to create readonly variables     CTWETEN

Perl Language Extensions

Alias             bdcf Convenient access to data/code via aliases   GSAR
End               RdpO Generalized END {}.                          ABIGAIL
Error             adpO Error/exception handling in an OO-ish way    GBARR
Perl              adcO Create Perl interpreters from within Perl    GSAR
Protect           bdpf declare subs private or member               JDUNCAN
Regexp            adcO An OO interface to regular expressions       GBARR
Safe              SdcO Restrict eval'd code to safe subset of ops   MICB
Softref           bdcf Extension for weak/soft referenced SVs       ILYAZ

Inline            adp? Easy way to use other languages in Perl      INGY
Inline::
::CPR             adpn C Perl Run - Embed Perl in C, ala Inline     INGY
::C               bdpn Write C extensions in Perl the easy way      INGY
::CPP             adpO Easy implementation of C++ extensions        NEILW
::Python          adpO Easy implementation of Python extensions     NEILW

Exporter::
::Import          Rdpn Alternate symbol exporter                    GARROW
::Options         adpO Extends Exporter to handle use-line options  YSTH
::PkgAlias        adpf Load a module into multiple namespaces       JDPORTER

Safe::
::Hole            bdcO Exec subs in the original package from Safe  SEYN

Symbol::
::Table           RdpO OO interface to package symbols              GARROW

Test              Sdpf Utilities for writing test scripts           JPRIT
Test::
::Cmd             RdpO Portable test infrastructure for commands    KNIGHT
::Harness         Supf Executes perl-style tests                    P5P
::Unit            adpO simple framework for unit testing            CLEMBURG
::Suite           cdpO tbs                                          HENKE
::Case            cdpO tbs                                          HENKE

The Perl Compiler

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

B::
::Fathom          bdpO Estimate the readability of Perl code        KSTAR
::Graph           bdpr Perl Compiler backend to diagram OP trees    SMCCAM
::LexInfo         bdcO Show info about subroutine lexical variables DOUGM
::Size            bdcO Measure size of Perl OPs and SVs             DOUGM
::TerseSize       bdpO Info about ops and their (estimated) size    DOUGM

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

Thread support (note that these are experimental, i.e. pre-alpha)

Thread            cuhO Manipulate threads in Perl (EXPERIMENTAL)    P5P

Thread::
::Group           bdph Wait()-like and grouping functions           DSUGAL
::IO              i    IO routines                                  DSUGAL
::Object          i    OO routines                                  DSUGAL
::Pool            bdpO Worker pools to run Perl code asynchronously MICB
::Queue           cuph Thread-safe queues                           P5P
::Semaphore       cuph Thread-safe semaphores                       P5P
::Signal          cuhh A thread which runs signal handlers reliably P5P
::Specific        cuhh Thread-specific keys                         P5P

Module Support

Module::
::Reload          Rdpf Reloads files in %INC based on timestamps    JPRIT

Documentation Tools:

Pod::
::Diff            cdpf compare two POD files and report diff        IANC
::HTML            cdpr converter to HTML                            KJALB
::Index           cdpr index generator                              KJALB
::Latex           cdpr converter to LaTeX                           KJALB
::LaTeX           bdpO Converts pod to latex with Pod::Parser       TJENNESS
::Lint            cdpO Lint-style validator for pod                 NEILB
::Lyx             adpO A pod to LyX format conversion class         RICHARDJ
::Man             cdpr converter to man page                        KJALB
::MIF             adpO converter to FrameMaker MIF                  JNH
::Parser          bdpO Base class for parsing pod syntax            BRADAPP
::Pdf             bdpf Converter to PDF                             AJFRY
::Pod             cdpr converter to canonical pod                   KJALB
::RTF             cdpr converter to RTF                             KJALB
::Sdf             cdpf converter to SDF                             IANC
::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
::Rtf             RdpO Converter from POD to Rich Text Format       PVHP
::Hlp             RdpO Convert POD to formatted VMS Help text       PVHP
::XML             RdpO Generate XML from POD                        MSERGEANT
::PP              idpO A Pod pre-processor                          RAM

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
Conjury           Rdp? Generic software construction toolset        JWOODYATT
Coy               Rdpn Like Carp - only prettier                    DCONWAY
FindBin           adpf Locate current script bin directory          GBARR
Include           adpO Parse C header files for use in XS           GBARR
Make              adpO Makefile parsing, and 'make' replacement     NI-S
Usage             bupr Type and range checking on subroutine args   JACKS

ExtUtils::
::DynaGlue        adcr Methods for generating Perl extension files  DOUGM
::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

Carp::
::Assert          adpf Stating the obvious to let the computer know MSCHWERN
::CheckArgs       Rdpf Check subroutine argument types              GARROW

Devel::
::CallerItem      RupO 'caller()' Object wrapper + useful methods   JACKS
::CoreStack       adpf generate a stack dump from a core file       ADESC
::Coverage        adpf Coverage analysis for Perl code              RJRAY
::Datum           cdpf Debugging And Tracing Ultimate Module        CDE
::DebugAPI        bdpf Interface to the Perl debug environment      JHA
::DebugInit       i    Create a .gdbinit or similar file            JASONS
::DProf           Rdcf Execution profiler                           DMR
::DumpStack       Rupf Dumping of the current function stack        JACKS
::Leak            Rdcf Find perl objects that are not reclaimed     NI-S
::PPPort          bdcn Portability aid for your XS code             KJALB
::Peek            adcf Peek at internal representation of Perl data ILYAZ
::RegExp          adcO Access perl internal regex functions         ILYAZ
::SmallProf       Rdpf Line-by-line profiler                        ASHTED
::StackTrace      RdpO Stacktrace object w/ info like Carp::confess DROLSKY
::Symdump         RdpO Perl symbol table access and dumping         ANDK
::TraceFuncs      adpO Trace funcs by using object destructions     JOEHIL
::TraceLoad       Rdpf Traces the loading of perl source code       JPRIT
::Modlist         Rdpf Collect module use information               RJRAY

Exception::
::Class           bdpO Declare exception class hierarchies          DROLSKY
::Cxx             Rd+f Cause perl to longjmp using C++ exceptions   JPRIT

Perf::            Performance measurement other than benchmarks
::ARM             adcf Application Response Measurement             BBACKER

Rcs               adcf Alternate RCS interface (see VCS::RCS)       CFRETER
VCS               ampO Generic interface to Version Control Systems LBROCARD

VCS::
::CVS             RdpO Interface to GNU's CVS                       RSAVAGE
::PVCS            i    PVCS Version Manager (intersolv.com)         BMIDD
::RCS             idpf Interface layer over RCS (See also Rcs)      RJRAY
::RCE             idcf Perl layer over RCE C API                    RJRAY

ClearCase         idcf Environment for ClearCase revision control   BRADAPP
ClearCase::
::Ct              Mnpf Generic cleartool wrapper                    DSB

Sub::
::Curry           Rdpf Perl module to curry functions ((á la Lisp)) DAVIDH

Perlbug           RdpO Database driven bug tracking system          RFOLEY

Continuus         adpO Interface to Continuus Code Management tool  HENKE

4) Operating System Interfaces, Hardware Drivers

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             adcf ioctl(2) constants                           JPRIT
POSIX             SupO An interface to most (all?) of POSIX.1       P5P
Shell             Supf Run shell commands transparently within perl P5P

Async::
::Group           adpO Deal with simultaneous asynchronous calls    DDUMONT
::Process         i    class to run sub-processes                   DDUMONT

BSD::
::HostIdent       i    s/gethostname(), s/gethostid()               JHI
::Ipfwgen         bdpf Generate ipfw(8) filters                     MUIR
::Resource        Rdcf getrusage(), s/getrlimit(), s/getpriority()  JHI

Env::
::Path            adpO Advanced operations on path variables        DSB

Proc::
::Background      RdpO OS independent background process objects    BZAJAC
::ExitStatus      Rdpf Interpret and act on wait() status values    ROSCH
::Forkfunc        Rdpf Simple lwall-style fork wrapper              MUIR
::ProcessTable    adcO Unix process table information               DURIST
::SafePipe        bdpf popen() and `` without calling the shell     ROSCH
::Short           adpO System calls with timeout option             JHKIM
::Simple          adpO Fork wrapper with objects                    MSCHILLI
::Spawn           Rdpf Run external programs                        GARROW
::SyncExec        Rdpf Spawn processes but report exec() errors     ROSCH
::times           adpf By-name interface to process times function  TOMC

GTop              bdcO Perl interface to libgtop                    DOUGM

Schedule::        See also Schedule:: in chapter 23
::At              Rd   OS independent interface to the at command   JOSERODR
::ByClock         adpO Return at given times                        SCHAFFTER
::Cron            adpO cron-like scheduler for perl subroutines     ROLAND
::Load            RdpO Remote system load, processes, scheduling    WSNYDER

Quota             Rdcf 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

    Note: The Sys:: namespace is considered harmful as it is giving no
    clue about which system. Placing additional modules into this
    namespace is discouraged.

Platform Specific Modules

Be::
::Attribute       Rd+f Manipulate BeOS BFS MIME file attributes     TSPIN
::Query           Rd+f Query a BeOS file system                     TSPIN

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

Mac::             Macintosh specific modules
::AppleEvents     bmcO AppleEvent manager and AEGizmos              MCPL
::AssistantFrames RdpO Easy creation of assistant dialogs           GBAUER
::Components      bmcO (QuickTime) Component manager                MCPL
::Files           bmcO File manager                                 MCPL
::Gestalt         bmcO Gestalt manager: Environment enquiries       MCPL
::Glue            bdpO Control apps with AppleScript terminology    CNANDOR
::Macbinary       bdpO Decodes MacBinary files.                     MIYAGAWA
::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
::Serial          bdpO Interface to Macintosh serial ports          DIVERDI
::Types           bmcO (Un-)Packing of Macintosh specific types     MCPL

Mac::AppleEvents::
::Simple          Rdph Simple access to Mac::AppleEvents            CNANDOR

Mac::Apps::
::Anarchie        RdpO Control Anarchie 2.01+                       CNANDOR
::Launch          Rdpf MacPerl module to launch / quit apps         CNANDOR
::MacPGP          RdpO Control MacPGP 2.6.3                         CNANDOR
::PBar            RdpO Control Progress Bar 1.0.1                   CNANDOR

Mac::Comm::
::OT_PPP          RdpO Control Open Transport PPP / Remote Access   CNANDOR

Mac::FileSpec::
::Unixish         Mdpf Unixish-compatability in filespecs           SBURKE

Mac::OSA::
::Simple          Rdph Simple access to Mac::OSA                    CNANDOR

MSDOS::
::Attrib          bdcf Get/set DOS file attributes in OS/2 or Win32 CJM
::Descript        bdpO Manage 4DOS style DESCRIPT.ION files         CJM
::SysCalls        adcf MSDOS interface (interrupts, port I/O)       DMO

MVS::
::VBFile          bdpf Read MVS VB (variable-length) files          GROMMEL

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

Netware::
::NDS             cd+O Interface to Novell Directory Services       KTHOMAS
::Bindery         cd+O Interface to Novell Bindery mode calls       KTHOMAS

OS2::
::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

Riscos            i    Namespace for Risc-OS (Acorn et.al.)         RISCOSML

SGI::
::SysCalls        cdcf SGI-specific system calls                    AMOSS
::GL              adcr SGI's Iris GL library                        AMOSS
::FM              adcr SGI's Font Management library                AMOSS
::FAM             RdcO Interface to SGI/Irix File Access Monitor    JGLICK

Solaris::
::ACL             adch Provides access to ACLs in Solaris           IROBERTS
::Kmem            idcf Read values from the running kernel          ABURLISON
::Kstat           adcO Access kernel performance statistics         ABURLISON
::MIB             idcO Access STREAMS network statistics            ABURLISON
::MapDev          bdpf Maps sdNN disk names to cNtNdN disk names    ABURLISON
::NDD             idcO Access network device statistics             ABURLISON
::Procfs          adhh Access to the Solaris /proc filesystem       JNOLAN
::InstallDB       bdp? Searches for Solaris package/system info     CHRISJ
::Package         bdpO Access a Solaris package pkginfo file        CHRISJ
::Contents        bdp? Access a Solaris contents file               CHRISJ

Unix::
::ConfigFile      adpO Abstract interfaces to Unix config files     SSNODGRA
::Processors      RdcO Interface to per-processor information       WSNYDER
::Syslog          i    Interface to syslog functions in a C-library MHARNISCH
::UserAdmin       Rdpf Interface to Unix Account Information        JZAWODNY

VMS::
::Device          Rdcr Access info about any device on a VMS system DSUGAL
::Filespec        Sdcf VMS and Unix file name syntax                CBAIL
::ICC             bdcr Interface to the ICC facilities in VMS 7.2+  DSUGAL
::Lock            cncO Object interface to $ENQ (VMS lock mgr)      BHUGHES
::Misc            Rdcr Miscellaneous VMS utility routines           DSUGAL
::Monitor         Rdcr Access VMS system performance info           DSUGAL
::Persona         Rdcf Interface to the VMS Persona services        DSUGAL
::Priv            Rdcf Access VMS Privileges for processes          DSUGAL
::Process         Rdcf Process management on VMS                    DSUGAL
::Queue           bdcf Manage queues and entries                    DSUGAL
::SysCalls        i    VMS-specific system calls                    CBAIL
::System          Rdcf VMS-specific system calls                    DSUGAL
::User            bdcr Read access to system UAF data               DSUGAL

Portable Digital Assistants

PDA::
::Pilot           amcO Interface to pilot-link library              KJALB
::PilotDesktop    i    Managing Pilot Desktop databases software    JWIEGLEY

Hardware related modules

Hardware::
::Simulator       adpf Simulate different pieces of hardware        GSLONDON

Device::
::SerialPort      bdpO POSIX clone of Win32::SerialPort             BBIRTH
::SVGA            c    SVGA Graphic card driver                     SCOTTVR

Device::ISDN::
::OCLM            bd?? Perl interface to the 3com OCLM ISDN TA      MERLIN

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

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Socket            Smcf Defines socket-related constants             GNAT
Socket6           adcf getaddrinfo/getnameinfo support module       UMEMOTO
Ptty              adcf Pseudo terminal interface functions          NI-S

Socket::
::PassAccessRights adcf Pass file descriptor via Unix domain socket SAMPO

Net::
::ACAP            adpO Interface to ACAP Protocol (Internet-Draft)  KJOHNSON
::AIM             adpO AOL Instant Messenger TOC protocol           ARYEH
::AOLIM           bdpO AOL Instant Messenger OO Interface (TOC)     RWAHBY
::Bind            adpO Interface to bind daemon files               KJOHNSON
::CDDB            cdpr Interface to the CDDB (CD Database)          DSTALDER
::Cmd             cdpO For command based protocols (FTP, SMTP etc)  GBARR
::DLookup         adpO Lookup domains on Internic and 2-letter TLDs DJASMINE
::DNS             bdpO Interface to the DNS resolver                MFUHR
::Daemon          adpO Abstract base class for portable servers     JWIED
::Dict            cdpO Client of Dictionary Server Protocol (DICT)  ABIGAIL
::Dnet            cdcO DECnet-specific socket usage                 SPIDB
::Domain          adpf Try to determine TCP domain name of system   GBARR
::DummyInetd      RdpO A dummy Inetd server                         GBARR
::FTP             adpf Interface to File Transfer Protocol          GBARR
::Gen             RdcO Generic support for socket usage             SPIDB
::Goofey          RdpO Communicate with a Goofey server             GOSSAMER
::Hotline         RdpO Interface to the Hotline protocol            JSIRACUSA
::ICAP            adpO Interface to ICAP Protocol (Internet-Draft)  KJOHNSON
::ICB             bdpO ICB style chat server interface              JMV
::IMAP            adpO Interface to IMAP Protocol (RFC2060)         KJOHNSON
::IRC             cdpO Internet Relay Chat interface                DSHEPP
::Ident           RdpO Performs ident (rfc1413) lookups             JPC
::Inet            RdcO Internet (IP) socket usage                   SPIDB
::Interface       adcO ifconfig(1) implementation                   SRZ
::Jabber          ampO Access to the Jabber protocol                REATMON
::LDAP            adpO Interface to LDAP Protocol (RFC1777)         PLDAP
::LDAPapi         Rdcf Interface to UMICH and Netscape LDAP C API   CDONLEY
::MsgLink         cdpO Abstraction of "user" part for message link  RAM
::NIS             adcO Interface to Sun's NIS                       RIK
::NISPlus         adcO Interface to Sun's NIS+                      RIK
::NNTP            adpO Client interface to NNTP protocol            GBARR
::Netmask         RdpO Understand and manipulate network blocks     MUIR
::Netrc           adpO Support for .netrc files                     GBARR
::PH              RdpO CCSO Nameserver Client class                 GBARR
::POP3            adpO Client interface to POP3 protocol            GBARR
::Patricia        RdcO Patricia Trie perl module for fast IP addres PLONKA
::Pcap            adcr An interface for LBL's packet capture lib    PLISTER
::Ping            SupO TCP and ICMP ping                            RMOSE
::Printer         RdpO Direct to lpd printing                       CFUHRMAN
::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          bmhf Secure Socket Layer (based on OpenSSL)       SAMPO
::Syslog          RdpO Forwarded syslog protocol                    LHOWARD
::TCP             RdcO TCP-specific socket usage                    SPIDB
::TFTP            cdpf Interface to Trivial File Transfer Protocol  GSM
::Telnet          RdpO Interact with TELNET port or other TCP ports JROGERS
::Time            adpf Obtain time from remote machines             GBARR
::Traceroute      bdpO Trace routes                                 HAG
::UDP             RdcO UDP-specific socket usage                    SPIDB
::VNC             i??? Interface VNC remote frame buffer protocol   BRONG
::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
::Z3950           adcO OO interface to the Yaz Z39.50 toolkit       MIRK
::SSL             RdcO Glue that enables LWP to access https URIs   CHAMAS
::Pager           RdpO Send Numeric/AlphaNumeric Pages to any pager ROOTLEVEL
::Whois           RdpO Get+parse "whois" domain data from InterNIC  DHUDES
::XWhois          RdpO Whois Client Interface for Perl5.            VIPUL
::ICQ             bmpO Client interface to ICQ messaging            JMUHLICH

Net::Daemon::
::SSL             RdpO SSL extension for Net::Daemon                MKUL

Net::IMAP::
::Simple          bdpO Only implements the basic IMAP features      JPAF

Net::SNMP::
::Interfaces      RdpO Obtain network interface info via SNMP       JSTOWE

Net::Telnet::
::Cisco           RdpO Net::Telnet wrapper for Cisco devices        JOSHUA

NetAddr::
::IP              RdpO Manipulation and operations on IP addresses  LUISMUNOZ

IPC::
::Cache           adpO Shared-memory object cache                   DCLINTON
::Chat2           ?    Out-of-service during refit!                 GBARR
::ChildSafe       RdcO Control child process w/o risk of deadlock   DSB
::Globalspace     cdpO Multi-process shared hash and shared events  JACKS
::LDT             Rdpf Implements a length based IPC protocol       JSTENZEL
::Locker          RdpO Shared semaphore locks across a network      WSNYDER
::Mmap            i    Interface to Unix's mmap() shared memory     MICB
::Open2           Supf Open a process for both reading and writing  P5P
::Open3           Supf Like IPC::Open2 but with error handling      P5P
::Run             bdph Child procs w/ piping, redir and psuedo-ttys RBS
::Session         anpO remote shell session mgr; wraps open3()      STEVEGT
::Shareable       bdpr Tie a variable to shared memory              BSUGARS
::SharedCache     Rmpr Manage a cache in SysV IPC shared memory     SAMTREGAR
::Signal          Rdpf Translate signal names to/from numbers       ROSCH
::SysV            adcr shared memory, semaphores, messages etc      JACKS
::XPA             adch Interface to SAO XPA messaging system        DJERIUS

RPC::             Remote Procedure Calls (see also DCE::RPC)
::PlServer        RdpO Interface for building Perl Servers          JWIED
::PlClient        RdpO Interface for building pServer Clients       JWIED
::ONC             adcO ONC RPC interface (works with perlrpcgen)    JAKE
::Simple          adpO Simple OO async remote procedure calls       DDUMONT

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

NetPacket::
::ARP             adpO  Address Resolution Protocol                 TIMPOTTER
::Ethernet        adpO  Ethernet framed data                        TIMPOTTER
::IGMP            adpO  Internet Group Management Protocol          TIMPOTTER
::IP              adpO  Internet Protocol                           TIMPOTTER
::TCP             adpO  Transmission Control Protocol               TIMPOTTER
::UDP             adpO  User Datagram Protocol                      TIMPOTTER

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

Fwctl             bmpO Interface to Linux packet filtering firewall FRAJULAC
LSF               cdcO Interface to the Load Sharing Facility API   PFRANCEUS
TFTP              bdpO Interface to TFTP (rfc1350)                  GSM
ToolTalk          adcr Interface to the ToolTalk messaging service  MARCP

SOAP              cmpO SOAP/Perl language mapping                   KBROWN

IPChains          RdcO Create and Manipulate ipchains               JESSICAQ
IPChains::
::PortFW          bdpO Interface to ipmasqadm portfw command        FRAJULAC

SNMP              RdcO Interface to the UCD SNMP toolkit            GSM
SNMP::
::Monitor         adpO Accounting and graphical display             JWIED
::Util            RdpO Perform SNMP set,get,walk,next,walk_hash,... WMARQ

Mon::
::Client          RdpO Network monitoring client                    TROCKIJ
::SNMP            RdpO Network monitoring suite                     TROCKIJ

Parallel::
::ForkManager     RdpO A simple parallel processing fork manager    DLUX
::Pvm             bdcf Interface to the PVM messaging service       DLECONTE

CORBA::
::IOP::IOR        adpO Decode, munge, and re-encode CORBA IORs      PHILIPA
::IDLtree         adpf IDL to symbol tree translator                OMKELLOGG

Modem::
::VBox            RdpO Perl module for creation of voiceboxes       MLEHMANN
::Vgetty          bdpO Interface to voice modems using vgetty       YENYA

ControlX10::
::CM10            RmpO Control unit for X10 modules                 BBIRTH
::CM17            RmpO inexpensive RF transmit-only X10             BBIRTH

RAS::
::PortMaster      RdpO Interface to Livingston PortMaster           STIGMATA
::AS5200          RdpO Interface to Cisco AS5200 dialup server      STIGMATA
::HiPerARC        RdpO Interface to 3Com TotalControl HiPerARC      STIGMATA

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
::BaseCalc        RdpO Convert numbers between various bases        KWILLIAMS
::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
::CDF             bdch Cumulative Distribution Functions            CALLAHAN
::Cephes          adcf Interface to St. Moshier's Cephes library    RKOBES
::Complex         SdpO Complex number data type                     RAM
::Derivative      Rdpr 1st and 2nd order differentiation of data    JARW
::Expr            adpO Parses agebraic expressions                  HAKANARDO
::Fortran         Rdpf Implements Fortran log10 & sign functions    JARW
::Fourier         i    Fast Fourier Transforms                      AQUMSIEH
::Fraction        bdpO Fraction Manipulation                        KEVINA
::Geometry        adpf 2D and 3D algorithms                         GMCCAR
::Integral        i    Integration of data                          AQUMSIEH
::Interpolate     Rdpr Polynomial interpolation of data             MATKIN
::LinearProg      idp  Linear programming utilities                 JONO
::Logic           RdpO Provides pure 2, 3 or multi-value logic      SUMMER
::Matrix          adpO Matrix data type (transpose, multiply etc)   ULPFR
::MatrixBool      RdcO Matrix of booleans (Boolean Algebra)         STBEY
::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
::Polynomial      RdpO Polynomials as objects                       MATKIN
::Prime           i    Prime number testing                         GARY
::RandomPrime     i    Generates random primes of x bits            GARY
::Round           RdpO Perl extension for rounding numbers          GROMMEL
::SigFigs         Rdpf 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          ASPINELLI
::ematica         adcO Interface to the powerful Mathematica system ULPFR
::Libm            RdcO Perl extension for the C math library, libm  DSLEWART

Math::Business::
::EMA             adcO An Exponential Moving Average Calculator     JETTERO

Statistics::
::ChiSquare       Rdpf Chi Square test - how random is your data?   JONO
::ConwayLife      RdpO Simulates life using Conway's algorithm      DANB
::Descriptive     RdpO Descriptive statistical methods              COLINK
::LTU             RdpO Implements Linear Threshold Units            TOMFA
::MaxEntropy      Rdpf Maximum Entropy Modeling                     TERDOEST
::OLS             bdpO ordinary least squares (curve fitting)       SMORTON
::ROC             bdpf ROC curves with nonparametric conf. bounds   HAKESTLER
::Distributions   RdpO Perl module for calculating critical values  MIKEK

Algorithm::
::Diff            Rdpf Diff (also Longest Common Subsequence)       NEDKONZ
::Permute         bdcO Handy and fast permutation with OO interface EDPRATOMO

Algorithm::Graphs::
::TransitiveClosure RdpO Calculates the transitive closure          ABIGAIL

Algorithm::Numerical::
::Shuffle         Rdph Knuth's shuffle algorithm                    ABIGAIL
::Sample          RDph Knuth's sample algorithm                     ABIGAIL

PDL               amcf Perl Data Language - numeric analysis env    PERLDL

PDL::
::Audio           adch Sound synthesis and editing with PDL         MLEHMANN
::Meschach        amcf Links PDL to meschach matrix library         EGROSS
::NetCDF          bdhO Reads/Writes NetCDF files from/to PDL objs   DHUNT
::Options         Rdph Provides hash options handling for PDL       TJENNESS
::PP              amcf Automatically generate C code for PDL        PERLDL
::Slatec          amof Interface to slatec (linpack+eispack) lib.   PERLDL

Quantum::
::Superpositions  RdpO QM-like superpositions in Perl               DCONWAY

Array::
::Compare         RdpO Class to compare two arrays                  DAVECROSS
::Heap            cdpf Manipulate array elements as a heap          JMM
::IntSpan         RdpO Handling arrays using IntSpan techniques     TEVERETT
::PrintCols       adpf Print elements in vertically sorted columns  AKSTE
::Substr          idp  Implement array using substr()               LWALL
::Vec             idp  Implement array using vec()                  LWALL
::Virtual         idp  Implement array using a file                 LWALL
::Reform          RdpO Convert an array into N-sized array of array TBONE

Hash::
::NoVivify        Rdcf Provide non-autovivifying hash functions     BPOWERS

Heap              bdpO Define Heap interface                        JMM
Heap::
::Binary          bdpO Implement Binary Heap                        JMM
::Binomial        bdpO Implement Binomial Heap                      JMM
::Fibonacci       bdpO Implement Fibonacci Heap                     JMM
::Elem            bdpO Heap Element interface, ISA                  JMM
Heap::Elem::
::Num             bdpO Numeric heap element container               JMM
::NumRev          bdpO Numeric element reversed order               JMM
::Str             bdpO String heap element container                JMM
::StrRev          bdpO String element reversed order                JMM
::Ref             bdpO Obj ref heap element container               JMM
::RefRev          bdpO Obj ref element reversed order               JMM

Scalar::
::Util            bdcf Scalar utilities (dualvar reftype etc)       GBARR

List::
::Util            bdcf List utilities (eg min, max, reduce)         GBARR

Bit::
::Vector          RdcO Virtual (arbitrary machineword size) CPU     STBEY

Set::
::Bag             RdpO Bag (multiset) class                         JHI
::IntRange        RdcO Set of integers (arbitrary intervals, fast)  STBEY
::IntSpan         adpO Set of integers newsrc style '1,5-9,11' etc  SWMCD
::NestedGroups    RdpO Grouped data eg ACL's, city/state/country    ABARCLAY
::Object          bdcO Set of Objects (smalltalkish: IdentitySet)   JLLEROY
::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

Decision::
::Markov          bdpO Build/evaluate Markov models for decisions   ALANSZ

Date::
::Calc            Rdcf Gregorian calendar date calculations         STBEY
::Convert         cdpO Conversion between Gregorian, Hebrew, more?  MORTY
::CTime           adpf Updated ctime.pl with mods for timezones     GBARR
::Format          Rdpf Date formatter ala strftime                  GBARR
::Interval        idpO Lightweight normalised interval data type    KTORP
::Language        adpO Multi-language date support                  GBARR
::Manip           Rdpf Complete date/time manipulation package      SBECK
::Parse           Rdpf ASCII Date parser using regexp's             GBARR
::Time            idpO Lightweight normalised datetime data type    TOBIX

Time::
::Avail           Rdpf Calculate min. remaining in time interval    PSANTORO
::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
::Object          adpO Object Oriented time objects                 MSERGEANT
::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
::Seconds         RdcO API to convert seconds to other date values  MSERGEANT

Calendar::
::CSA             adcO interface with calenders such as Sun and CDE KJALB
::Hebrew          cdpO Hebrew calendar conversion/manipulation      YSTH
::RCM             i    Russell Calendar Manager                     HTCHAPMAN

Tie::
::Hash            Supr Base class for implementing tied hashes      P5P
::Scalar          Supr Base class for implementing tied scalars     P5P
::Array           Supr Base class for implementing tied arrays      P5P
::CPHash          bdpO Case preserving but case insensitive hash    CJM
::Cache           Mdpr In memory size limited LRU cache             CHAMAS
::DB_FileLock     Rdpr Locking access to Berkeley DB 1.x.           JMV
::DB_Lock         Rdpr Tie DB_File with automatic locking           KWILLIAMS
::DBI             RdpO Tie hash to a DBI handle                     LDS
::Dir             adpr Tie hash for reading directories             GBARR
::Discovery       Rdpr Discover data by caching sub results         SIMON
::File            adpr Tie hash to files in a directory             AMW
::FileLRUCache    bdph File based persistent LRU cache              SNOWHARE
::Handle          RdpO Base class for implementing tied filehandles STBEY
::HashDefaults    adpr Let a hash have default values               JDPORTER
::IxHash          RdpO Indexed hash (ordered array/hash composite)  GSAR
::LLHash          Rdpr Fast ordered hashes via linked lists         KWILLIAMS
::ListKeyedHash   Rdpr Use lists to key multi-level hashes          SNOWHARE
::Mem             adcO Bind perl variables to memory addresses      PMQS
::MmapArray       bdcr Ties a file to an array                      ANDREWF
::Multidim        adpr "tie"-like multidimensional data structures  JDPORTER
::OffsetArray     adpr Tie one array to another, with index offset  JDPORTER
::Persistent      Rdpr Persistent data structures via tie           RGIERSIG
::Quick           i    Simple way to create ties                    TIMB
::RDBM            RdpO Tie hashes to relational databases           LDS
::RndHash         bdpO choose a random key of a hash in O(1) time   DFAN
::SecureHash      RdpO Enforced encapsulation of Perl objects       DCONWAY
::SentientHash    bdpr Tracks changes to nested data structures     ANDREWF
::ShadowHash      adpO Merge multiple data sources into a hash      RRA
::ShiftSplice     i    Defines shift et al in terms of splice       LWALL
::SortHash        Rdpr Provides persistent sorting for hashes       CTWETEN
::SubstrHash      SdpO Very compact hash stored in a string         LWALL
::TextDir         Rdpr ties a hash to a directory of textfiles      KWILLIAMS
::Watch           bdpO Watch variables, run code when read/written  LUSOL
::Cycle           RdpO Cycle through a list of values via a scalar. BDFOY

Tie::Scalar::
::Timeout         adpr Scalar variables that time out               MARCEL

Tie::Cache::
::LRU             adpr A Least-Recently Used cache                  MSCHWERN

Class::
::Accessor        bdpO Automated accessor generation                MSCHWERN
::DBI             adpO Simple SQL-based object persistance          MSCHWERN
::Eroot           RdpO Eternal Root - Object persistence            DMR
::Fields          bdph Inspect the fields of a class                MSCHWERN
::MethodMaker     bdpO Create generic methods                       FLUFFY
::Multimethods    Rdpf A multiple dispatch mechanism for Perl       DCONWAY
::Mutator         bdpO Dynamic polymorphism implemented in Perl     GMCCAR
::NamedParms      MdpO A named parameter accessor base class        SNOWHARE
::ParmList        MdpO A named parameter list processor             SNOWHARE
::Singleton       bdpO Implementation of a "Singleton" class        ABW
::Template        Rdpr Struct/member template builder               DMR
::Translucent     RdpO Translucent (ala perltootc) method creation  GED
::Tree            MdpO C++ class hierarchies & disk directories     RSAVAGE
::TOM             RmpO Transportable Object Model for perl          JDUNCAN
::Contract        RdpO Design-by-Contract OO in Perl.               DCONWAY
::WhiteHole       RdpO Treat unhandled method calls as errors       MSCHWERN
::BlackHole       RdpO treat unhandled method calls as no-op        SBURKE
::Classless       MdpO Framework for classless OOP                  SBURKE
::ISA             Mdpf Report the search path thru an ISA tree      SBURKE

Object::
::Info            Rupf General info about objects (is-a, ...)       JACKS
::Transaction     bdpO Transactions on serialized HASH files        MUIR

POE::             Perl Object Environment
::Kernel          RdpO An event queue that dispatches events        RCAPUTO
::Session         RdpO state machine running on POE::Kernel events  RCAPUTO

POE::Component::
::RSS             bdp? Event based RSS interface                    MSTEVENS
::SubWrapper      bdp? Event based Module interface                 MSTEVENS

MOP               bdp  Meta Object Protocol (Tool collection)       ORTALO
Ref               RdpO Print, compare, and copy perl structures     MUIR
SOOP              RdpO Safe Object Oriented Programming             GARROW

Sort::
::ByCompatMatrix  idpO Sort objects by attribute compatibility      ICKHABOD
::Fields          bdpf sort text lines by alpha or numeric fields   JNH
::PolySort        bdpO general rules-based sorting of lists         DMACKS
::Versions        Rdpf sorting of revision (and similar) numbers    KJALB

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

Clone             idch Recursive copy of nested objects             RDF
FreezeThaw        bdpf Convert arbitrary objects to/from strings    ILYAZ
Persistence::
::Object          adpO Store Object definitions with Data::Dumper   VIPUL
Storable          Rdcr 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
Tangram           RmpO Object persistence in relational databases   JLLEROY

Persistent::
::Base            bdpO Persistent base classes (& DBM/File classes) DWINTERS
::DBI             bdpO Persistent abstract class for DBI databases  DWINTERS
::MySQL           bdpO Persistent class for MySQL databases         DWINTERS
::Oracle          bdpO Persistent class for Oracle databases        DWINTERS
::Sybase          bdpO Persistent class for Sybase databases        DWINTERS
::mSQL            bdpO Persistent class for mSQL databases          DWINTERS
::LDAP            bdpO Persistent class for LDAP directories        DWINTERS

Data::
::Check           cdpO Checks values for various data formats       KENHOLM
::DRef            adph Nested data access using delimited strings   EVO
::Dumper          RdpO Convert data structure into perl code        GSAR
::Flow            RdpO Acquire data based on recipes                ILYAZ
::Locations       RdpO Insert data into other data w/o temp files   STBEY
::Reporter        RdcO Ascii Report Generator                       RVAZ
::Walker          RdpO Navigate through Perl data structures        JNOLAN
::Random          adpf Generate random sets of data                 ADEO
::JavaScript      RdpO Dumps structures into JavaScript code        SCHOP

Tree::
::Base            cdpO Defines a basic binary search tree           MSCHWERN
::Fat             Rdcf Embeddable F-Tree algorithm suite            JPRIT
::Smart           cdpO Splay tree, fastest for commonly accessed ke MSCHWERN
::Ternary         bdpO Perl implementation of ternary search trees  MROGASKI
::Ternary_XS      adcO XS implementation of ternary search trees    LBROCARD
::Trie            bdpO An implementation of the Trie data structure AVIF
::Nary            RdpO Perl implementation of N-ary search trees    FSORIANO
::DAG_Node        MdpO base class for trees                         SBURKE

DFA::
::Command         MdpO Discrete Finite Automata command processor   RSAVAGE
::Kleene          R    Kleene's Algorithm for DFA                   STBEY
::Simple          cdpO An "augmented transition network"            RANDYM

Boulder           MdpO Generalized tag/value data objects           LDS
Thesaurus         RdpO Create associations between related things   DROLSKY

7) Database Interfaces (see also Data Types)

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
DBI               amcO Generic Database Interface (see DBD modules) DBIML

DBIx -- Extensions to the DBI

DBIx::
::Abstract        RmpO Wrapper for DBI that generates SQL           TURNERA
::AnyDBD          bdpO Module to make cross db applications easier  MSERGEANT
::CGITables       adpO Easy DB access from a CGI                    TOBIX
::Copy            adpO Copying databases                            TOBIX
::FullTextSearch  bdpO Index documents with MySQL as storage        TJMATHER
::glueHTML        bdpO CGI interface to DBI databases               JFURNESS
::HTMLView        cdpO Creating web userinterfaces to DBI dbs       HAKANARDO
::OracleSequence  adpO OO access to Oracle sequences via DBD-Oracle BLABES
::Password        MdpO Abstration layer for database passwords      KROW
::Recordset       bmpO DB-Abtractionlayer / Access via Arrays/Hashs GRICHTER
::Table           bdpO OO access to DBI database tables             DLOWE
::TableAdapter    adpO An object-relational mapper for DBI tables   GED
::Tree            adpO Expand self-referential table into a tree    BJEPS
::XML_RDB         ???? Creates XML from DBI datasources             MSERGEANT
::DBSchema        bmpO Database-independent schema objects          IVAN

DBD::
::ASAny           adcO Adaptive Server Anywhere Driver for DBI      SMIRNIOS
::Altera          bdpO Altera SQL Server for DBI - pure Perl code   DSOUFLIS
::CSV             adcO SQL engine and DBI driver for CSV files      JWIED
::DB2             adcO DB2 Driver for DBI                           MHM
::Empress         adcO Empress RDBMS Driver                         SWILLIAM
::FreeTDS         adcO DBI driver for MS SQLServer and Sybase       SPANNRING
::SearchServer    cdcO PCDOCS/Fulcrum SearchServer Driver for DB    SHARI
::Illustra        bmcO Illustra Driver for DBI                      PMH
::Informix        amcO Informix Driver for DBI                      JOHNL
::Informix4       adcO DBI driver for Informix SE 4.10              GTHYNI
::Ingres          bmcO Ingres Driver for DBI                        HTOUG
::Multiplex       a    Spreading database load acrross servers      TIMB
::ODBC            amcO ODBC Driver for DBI                          DBIML
::Oracle          MmcO Oracle Driver for DBI                        TIMB
::QBase           amcO QBase Driver for DBI                         BENLI
::RAM             bmpO a DBI driver for files and data structures   JZUCKER
::SQLrelay        bdpO SQLrelay driver for DBI                      DMOW
::Solid           amcO Solid Driver for DBI                         TWENRICH
::Sqlflex         RdcO SQLFLEX driver for DBI                       INFOFLEX
::Sybase          bmcO Sybase Driver for DBI                        MEWP
::Unify           bdcO Unify driver for DBI                         HMBRAND
::XBase           bmpO XBase driver for DBI                         JANPAZ
::mSQL            RmcO Msql Driver for DBI                          JWIED
::mysql           RmcO Mysql Driver for DBI                         JWIED
::pNET            amcO DBD proxy driver                             JWIED
::InterBase       amcO DBI driver for InterBase RDBMS server        EDPRATOMO

Oraperl           Rmpf Oraperl emulation interface for DBD::Oracle  DBIML
Ingperl           bmpf Ingperl emulation interface for DBD::Ingres  HTOUG

DDL::
::Oracle          bdpO Reverse engineers object DDL; also defrags   RVSUTHERL

MSSQL::
::DBlib           Md+O Access MS SQL Server through DB-Library.     SOMMAR
::Sqllib          MdpO High-level interface using MSSQL::DBlib.     SOMMAR

Sybase::
::Async           cdpO interact with a Sybase asynchronously        WORENKD
::BCP             RdcO Sybase BCP interface                         MEWP
::DBlib           RdcO Sybase DBlibrary interface                   MEWP
::Simple          bdpO Simplified db access using Sybase::CTlib     MEWP
::Sybperl         Rdpf sybperl 1.0xx compatibility module           MEWP
::CTlib           RdcO Sybase CTlibrary interface                   MEWP

Ace               i    Interface to ACEDB (Popular Genome DB)       LDS
BBDB              Rdph Insiduous big brother database               LAXEN
DTREE             cdcf Interface to Faircom DTREE multikey ISAM db  JWAT
Datascope         Rdcf Interface to Datascope RDBMS                 DANMQ
Fame              adcO Interface to FAME database and language      TRIAS
LotusNotes        i    Interface to Lotus Notes C/C++ API           MBRECH
Msql              RmcO Mini-SQL database interface                  JWIED
Mysql             RmcO mysql database interface                     JWIED
NetCDF            bmcr Interface to netCDF API for scientific data  SEMM
ObjStore          Rm+O ObjectStore OODBMS Interface                 JPRIT
Pg                Rdcf PostgreSQL SQL database interface            MERGL
PgSQL             adpO "Pure perl" interface to PostgreSQL          GTHYNI
Pogo              ad+O Interface for GOODS object database          SEYN
Postgres          RncO PostgreSQL interface with Perl5 coding style VKHERA
Sprite            RdpO Limited SQL interface to flat file databases SHGUN
Stanza            i    Text format database used by OSF and IBM     JHI
VDBM              cdph Client/server-layers on top of DBM files     RAM
WAIT              adhO A rewrite of the freeWAIS-sf engine in Perl  ULPFR
Wais              Rdcf Interface to the freeWAIS-sf libraries       ULPFR
XBase             RdpO Read/write interface to XBase files          JANPAZ
Xbase             bdpf Read Xbase files with simple IDX indexes     PRATP

Tied Hash File Interfaces:

AnyDBM_File       Sup  Uses first available *_File module above     P5P
BerkeleyDB        RdcO Interface to Berkeley DB 2 & 3               PMQS
CDB_File          adc  Tie to CDB (Bernstein's constant DB) files   TIMPX
DBZ_File          adc  Tie to dbz files (mainly for news history)   IANPX
DWH_File          adpO DBM storage of complex data and objects      SUMUS
DB_File           Suc  Tie to DB files                              PMQS
GDBM_File         Suc  Tie to GDBM files                            P5P
NDBM_File         Suc  Tie to NDBM files                            P5P
ODBM_File         Suc  Tie to ODBM files                            P5P
SDBM_File         Suc  Tie to SDBM files                            P5P

MLDBM             RdpO Transparently store multi-level data in DBM  GSAR
MLDBM::
::Sync            cdpr MLDBM wrapper to serialize concurrent access CHAMAS

DB_File::
::Lock            RdpO DB_File wrapper with flock-based locking     DHARRIS

DBM::
::DBass           adpf DBM with hashes, locking and XML records     SPIDERBOY

AsciiDB::
::Parse           i    Generic text database parsing                MICB
::TagFile         adpO Tie class for a simple ASCII database        JOSERODR

Db::
::Ctree           Rdcr Faircom's CTREE+ database interface          REDEN
::Documentum      Rdcf Documentum EDMS Perl client interface        MSROTH
::dmObject        cdpO Object-based interface to Documentum EDMS    JGARRISON
::DFC             adpO OO Interface to Documentum's DFC             MSROTH

DbFramework::
::Attribute       adpO Relational attribute class                   PSHARPE
::DataModel       adpO Relational data model/schema class           PSHARPE
::DataType        adpO Attribute data type class                    PSHARPE
::ForeignKey      adpO Relational foreign key class                 PSHARPE
::Key             adpO Relational key class                         PSHARPE
::Persistent      adpO Persistent object class                      PSHARPE
::PrimaryKey      adpO Relational primary key class                 PSHARPE
::Table           adpO Relational table/entity class                PSHARPE
::Util            adhO Utility functions/methods                    PSHARPE

BTRIEVE::
::SAVE            bdpO Read-write access to BTRIEVE SAVE files      DLANE

MARC              bmpO MAchine Readable Catalog (library bib. data) PERL4LIB
MARC::
::XML             ampO MAchine Readable Catalog / XML Extension     PERL4LIB

Metadata::
::Base            bdpO Base metadata functionality                  DJBECKETT
::IAFA            bdpO IAFA templates metadata                      DJBECKETT
::SOIF            bdpO Harvest SOIF metadata                        DJBECKETT

OLE::
::PropertySet     aupO Property Set interface                       MSCHWARTZ
::Storage         aupO Structured Storage / OLE document interface  MSCHWARTZ
::Storage_Lite    adpO Simple Class for OLE document interface      KWITKNR

Spectrum::
::CLI             RdpO API for Spectrum Enterprise Mgr. CLI         PLONKA

Spreadsheet::
::Excel           i    Interface to Excel spreadsheets              RRAWLINGS
::Lotus           i    Interface to Lotus 1-2-3 spreadsheets        RRAWLINGS
::WriteExcel      bupO Write numbers & text in Excel binary format  JMCNAMARA
::ParseExcel      RdpO Get information from Excel file              KWITKNR

X500::
::DN              MdpO X500 Distinguished Name parser               RSAVAGE

8) User Interfaces (Character and Graphical)

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Term::
::ANSIColor       Sdpf 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
::ProgressBar     idpf Progress bar in just ASCII                   EDAVIS
::Prompt          adpf Prompt a user                                ALLENS
::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
::Scraper         cdpO Drive and scrape terminal applications       INGY
::Screen          RdpO Basic screen + input class (uses Term::Cap)  MRKAE
::Size            adcf Simple way to get terminal size              TIMPX
::TUI             bdpf User interface based on Term::ReadLine       SBECK

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

Major Character User Interface Modules:

Cdk               RdcO Collection of Curses widgets                 GLOVER
Curses            adcO Character screen handling and windowing      WPS
Dialog            bdch interface library to libdialog               UNCLE
PV                bdpO Text-mode User Interface Widgets             AGUL
PerlMenu          Mdpf Curses-based menu and template system        SKUNZ

Curses::
::Forms           adpO Form management for Curses::Widgets          CORLISS
::Widgets         Rdpf Assorted widgets for rapid interfaces        CORLISS

Emacs             adpf Support for Perl embedded in GNU Emacs       JTOBEY
Emacs::
::Lisp            bdch Perl-to-Emacs-Lisp glue                      JTOBEY

Tk X Windows User Interface Modules

Tk                bmcO Object oriented version of Tk v4             TKML

Tk::
::TextANSIColor   bdpO use ANSI color codes in Text widget          TJENNESS
::Autoscroll      cdpf Alternative way to scroll                    SREZIC
::Axis            RmpO Canvas with Axes                             TKML
::CheckBox        RdpO A radio button widget that uses a checkmark  DKWILSON
::ChildNotification RdpO Alert widget when child is created         DKWILSON
::Clock           RdpO Canvas based Clock widget                    HMBRAND
::Cloth           RdpO Object interface to Tk::Canvas and items     ACH
::Columns         RdpO Multi column lists w/ resizable borders      DKWILSON
::ComboEntry      RdpO Drop down list + entry widget                DKWILSON
::ContextHelp     cdpO A context-sensitive help system              SREZIC
::Dial            RmpO An alternative to the Scale widget           TKML
::Date            cdpO A date/time widget                           SREZIC
::Enscript        cdpf Create postscript from text files using Tk   SREZIC
::FcyEntry        adpO Entry with bg color depending on -state      ACH
::FileDialog      RdpO A highly configurable file selection widget  BPOWERS
::FileEntry       adpO Primitive clone of Tix FileEntry widget      ACH
::FireButton      RdpO Keeps invoking callback when pressed         ACH
::FlatCheckbox    cdpO A checkbox suitable for flat reliefs         SREZIC
::FontDialog      cdpO A font dialog widget for perl/Tk             SREZIC
::Getopt          adpO Configuration interface to Getopt::Long      SREZIC
::HistEntry       cdpO An entry widget with history capability      SREZIC
::HTML            bdpO View HTML in a Tk Text widget                NI-S
::IconCanvas      RdpO Canvas with movable iconic interface         DKWILSON
::JPEG            RdcO JPEG loader for Tk::Photo                    NI-S
::LockDisplay     RdpO Screen saver/lock widget with animation      LUSOL
::Login           cdpO A Login widget (name, passwd, et al)         BPOWERS
::Menustrip       RdpO Another MenuBar                              DKWILSON
::More            adpO A more (or less) like text widget            ACH
::Multi           bdpO Manages several Text or Canvas widgets       DDUMONT
::NumEntry        RdpO Numerical entry widget with up/down buttons  ACH
::ObjScanner      bdpO A scanner to view an object's attribute      DDUMONT
::Olwm            RmpO Interface to OpenLook toplevels properties   TKML
::Pane            RdpO A Frame that can be scrolled                 TKML
::PNG             RdcO PNG loader for Tk::Photo                     NI-S
::Pod             ?mpO POD browser toplevel widget                  TKML
::ProgressBar     RdpO Status/progress bar                          TKML
::ProgressMeter   cdpO Simple thermometer-style widget w/callbacks  BPOWERS
::RotCanvas       RdpO Canvas with arbitrary rotation support       AQUMSIEH
::SplitFrame      RdpO A sliding separator for two child widgets    DKWILSON
::TabFrame        RdpO A tabbed frame geometry manager              DKWILSON
::TabbedForm      RdpO Ext. TabFrame, allowing managed subwidgets   DKWILSON
::TableEdit       RdpO Simplified interface to a flat file database DKWILSON
::TableMatrix     bdcO Display data in Table/Spreadsheet format     CERNEY
::TiedListbox     RmpO Gang together Listboxes                      TKML
::TFrame          RdpO A Frame with a title                         ACH
::TIFF            adpO TIFF loader for Tk::Photo                    SREZIC
::Tree            RdpO Create and manipulate Tree widgets           CTDEAN
::TreeGraph       RdpO Widget to draw a tree in a Canvas            DDUMONT
::WaitBox         RdpO A Wait dialog, of the "Please Wait" variety  BPOWERS
::XMLViewer       adpO Tk widget to display XML                     SREZIC

Modules in the realm of Tk but with a separate namespace

Log::Dispatch::
::ToTk            RdpO Interface class between Log::Dispatch and Tk DDUMONT
::TkText          RdpO Text widget to log Log::Dispatch messages    DDUMONT

Puppet::
::Body            adpO Base class for persistent data               DDUMONT
::Log             bdpO Logging facility based on Tk                 DDUMONT
::Any             adpO Base class for an optionnal GUI              DDUMONT

Puppet::VcsTools::
::History         bdpO VCS (RCS HMS) history viewer based on Canvas DDUMONT
::File            adpO VCS (RCS HMS) file manager                   DDUMONT

Orac              RdpO DBA GUI tool for Oracle, Informix and Sybase ANDYDUNC
PPresenter        MdpO Create presentations with Tk in Perl or XML  MARKOV

Other Major X Windows User Interface Modules:

Gtk               bdcO binding of the Gtk library used by GIMP      KJALB

Gtk::
::Dialog          adph Simple interface to create dialogs in Gtk    ALISTAIRC

Fresco            cd+O Interface to Fresco (post X11R6 version)     BPETH
Glade             adph Glade/Gtk+/Gnome UI source code generator    DMUSGR
Gnome             bdcO Bindings to the Gnome Desktop Toolkit        KJALB
Qt                ad+O Interface to the Qt toolkit                  AWIN
Sx                Rdcf Simple Athena widget interface               FMC

X11::
::Auth            adpO Read and handle X11 '.Xauthority' files      SMCCAM
::Fvwm            RdcO interface to the FVWM window manager API     RJRAY
::Keysyms         adpf X11 key symbols (translation of keysymdef.h) SMCCAM
::Lib             bdcO X11 library interface                        KENFOX
::Motif           bdcO Motif widget set interface                   KENFOX
::Protocol        adpO Raw interface to X Window System servers     SMCCAM
::Toolkit         bdcO X11 Toolkit library interface                KENFOX
::Wcl             bdcO Interface to the Widget Creation Library     JHPB
::XEvent          bdcO provides perl OO acess to XEvent structures  MARTINB
::XFontStruct     bdcO provides perl OO access to XFontStruct       MARTINB
::XRT             adcO XRT widget set (commercial) interface        KENFOX
::Xbae            adcO Xbae matrix (spreadsheet like) interface     KENFOX
::Xforms          bdcO provides the binding to the xforms library   MARTINB
::Xpm             adcf X Pixmap library interface                   KENFOX

Abstract Graphical User Interfaces modules

GUI::
::Guido           i    bd+O Communicate with objects in a GUI       TBRADFUTE

9) Interfaces to or Emulations of Other Programming Languages

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Clips             adpO Interface to the Expert System Clips         MSULLIVAN
Java              RdoO A Perl front-end for JVM communication       METZZO
Rc                cdcO Perl interface for the Rc shell              JPRIT
SICStus           adcO Interface to SICStus Prolog Runtime          CBAIL

C::
::DynaLib         bdcO Allows direct calls to dynamic libraries     JTOBEY
::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::
::Basic           adpO Implementation of BASIC                      AKARGER
::Prolog          adpO An implementation of Prolog                  JACKS
::PGForth         i    Peter Gallasch's Forth implementation        PETERGAL

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

ShellScript::
::Env             adpO Simple sh and csh script generator           SVENH

Verilog::
::Pli             Rdch Access to simulator functions                WSNYDER
::Language        Rdpf Language support, number parsing, etc        WSNYDER
::Parser          RdpO Language parsing                             WSNYDER
::SigParser       RdpO Signal and module extraction                 WSNYDER

FFI               cdcf Low-level Foreign Function Interface         PMOORE

FFI::
::Library         cdcO Access to functions in shared libraries      PMOORE

FFI::Win32::
::Typelib         idcO FFI taking definitions from a type library   PMOORE
::COM             idcO Access to COM using VTBL interface           PMOORE

Python            bmcf Interface Python API (for embedded python)   GAAS
Python::
::Object          bmcO Wrapper for python objects                   GAAS
::Err             bmcO Wrapper for python exceptions                GAAS

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
::BSDGlob         bdcf Secure, csh-compatible filename globbing     GBACON
::Backup          bdpf Easy file backup & rotation automation       KWILLIAMS
::Basename        Supf Return basename of a filename                P5P
::Cache           adpO Share data between processes via filesystem  DCLINTON
::CheckTree       Supf Check file/dir tree against a specification  P5P
::Compare         Supf Compare file contents quickly                P5P
::Copy            adpf Copying files or filehandles                 ASHER
::CounterFile     RdpO Persistent counter class                     GAAS
::Df              adpf Free disk space utilities (h2ph required)    FTASSIN
::Find            Supf Call func for every item in a directory tree P5P
::Flock           Mdph flock() wrapper.  Auto-create locks          MUIR
::Glob            adpf Filename globing (ksh style)                 TYEMQ
::LckPwdF         adcf Lock and unlock the passwd file              ALLENS
::Listing         Rdpf Parse directory listings                     GAAS
::Lock            adcf File locking using flock() and lockf()       JHI
::MultiTail       adpO Tail multiple files                          SGMIANO
::Path            Supf File path and name utilities                 P5P
::Remote          Rdph Read/write/edit remote files transparently   NWIGER
::Rsync           bdpO Copy efficiently over the net and locally    LEAKIN
::Signature       cdpf Heuristics for file recognition              JHI
::Slurp           Mdpf Read/write/append files quickly              MUIR
::Sort            Rdpf Sort a file or merge sort multiple files     CNANDOR
::Spec            bdpO Handling files and directories portably      KJALB
::Sync            bdcf POSIX/*nix fsync() and sync()                CEVANS
::Tail            bdpO A more efficient tail -f                     MGRABNAR
::Temp            adpf Create temporary files safely                TJENNESS
::chmod           Mdpf Allows for symbolic chmod notation           PINYAN
::lockf           bdcf Interface to lockf system call               PHENSON
::stat            Supf A by-name interface for the stat function    TOMC
::BasicFlock      Rdpf Simple flock() wrapper                       MUIR
::Searcher        bdpO Search filetree do search/replace regexes    ASTUBBS

File::Searcher::
::Interactive     bdpO Interactive search do search/replace regexes ASTUBBS

Dir::
::Purge           Rdpf Delete files in directory based on timestamp JV

Filesys::
::AFS             cdcO AFS Distributed File System interface        NOG
::Df              Rdpr Disk free based on Filesys::Statvfs          IGUTHRIE
::DiskFree        adpO OS independant parser of the df command      ABARCLAY
::Ext2            Rdpf Interface to e2fs filesystem attributes      JPIERCE
::SamFS           adcf Interface to SamFS API                       LUPE
::Statvfs         Rdcf Interface to the statvfs() system call       IGUTHRIE
::dfent           adpf By-name interface                            TOMC
::mntent          adpf By-name interface                            TOMC
::statfs          adpf By-name interface                            TOMC

LockFile::        Application-level locking facilities
::Lock            adpO Lock handles created by LockFile::* schemes  RAM
::Manager         adpO Records locks created by LockFile::*         RAM
::Scheme          adpO Abstract superclass for locking modules      RAM
::Simple          adpr Simple file locking mechanism                RAM

Stat::
::lsMode          Rdpf Translate mode 0644 to -rw-r--r--            MJD

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
::CRC             Rdcf Cyclic redundency check generation           MUIR
::CRC32           R?c? ZMODEM-like CRC32 generation of strings as w SOENKE
::DiffLine        bdcf line # & position of first diff              ALLEN
::Edit            adpf Assorted handy string editing functions      TOMC
::Parity          adpf Parity (odd/even/mark/space) handling        WINKO
::RexxParse       Rdph Perl implementation of REXX 'parse' command  BLCKSMTH
::Scanf           Rdpf Implementation of C sscanf function          JHI
::ShellQuote      Rdpf Quote string for safe passage through shells ROSCH
::Strip           Rdcf xs Module to remove white-space from strings BPOWERS
::Random          RdpO Perl module to generate random strings based STEVE
::Similarity      RdcO Calculate the similarity of two strings      MLEHMANN

Language text related modules

Text::
::Abbrev          Supf Builds hash of all possible abbreviations    P5P
::Bastardize      cdpO corrupts text in various ways                AYRNIEU
::Bib             RdpO Module moved to Text::Refer                  ERYQ
::BibTeX          adcO Parse BibTeX files                           GWARD
::CSV             adpO Manipulate comma-separated value strings     ALANCITT
::CSV_XS          adpO Fast 8bit clean version of Text::CSV         JWIED
::DelimMatch      RdpO Match (possibly nested) delimited strings    NWALSH
::FillIn          RdpO Fill-in text templates                       KWILLIAMS
::Format          RdpO Advanced paragraph formatting                GABOR
::Graphics        RdpO Graphics rendering toolkit with text output  SFARRELL
::Iconv           RdcO Perl interface to the XPG4 iconv() function  MPIOTR
::Invert          cdpO Create/query inv. index of text entities     NNEUL
::Macros          adpO template macro expander (OO)                 JDPORTER
::Metaphone       bdcf A modern soundex. Phonetic encoding of words MSCHWERN
::MetaText        bdpO Text processing/markup meta-language         ABW
::Morse           cdpf convert text to/from Morse code              JONO
::ParseWords      Supf Parse strings containing shell-style quoting HALPOM
::Refer           RdpO Parse refer(1)-style bibliography files      ERYQ
::SimpleTemplate  adpO Template for dynamic text generation         TAIY
::Soundex         Sdhf Convert a string to a soundex value          MARKM
::Tabs            Sdpf Expand and contract tabs ala expand(1)       MUIR
::TeX             cdpO TeX typesetting language input parser        ILYAZ
::Templar         RdpO An object-oriented templating system         GED
::Template        MdpO Expand template text with embedded perl      MJD
::TreeFile        bdpO Reads tree of strings into a data structure  JNK
::Vpp             RdpO Versatile text pre-processor                 DDUMONT
::Wrap            Sdpf Wraps lines to make simple paragraphs        MUIR
::iPerl           adpf Bring text-docs to life via embedded Perl    PFEIFFER
::DoubleMetaphone adcf Convert string to phonetic encoding          MAURICE
::FastTemplate    bdpO Perl subs from line-oriented templates       BOZZIO

Text::Wrap::
::Hyphenate       a    Like Text::Wrap with ability to hyphenate    MJD

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

Text::
::Balanced        Mdpf Extract balanced-delimiter substrings        DCONWAY
::Banner          adpf Resembles UNIX banner command                LORY
::Merge           i??? Methods for text templating and data merging SHARRIS
::Parser          adpO String parser using patterns and states      PATM
::Trie            adpf Find common heads and tails from strings     ILYAZ

Stemming algorithms

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

Natural Languages

Lingua::
::DetectCharset   a    Heuristics to detect coded character sets    JNEYSTADT
::Ident           RdpO Statistical language identification          MPIOTR
::Ispell          adpf Interface to the Ispell spellchecker         JDPORTER
::Stem            Rdph Word stemmer with localization               SNOWHARE

Specific Natural Languages

Lingua::
::EN              i    Namespace for English language modules
::PT              bupf Namespace for Portugese language modules     EGROSS

Lingua::EN::
::AddressParse    bdpO Manipulate geographical addresses            KIMRYAN
::Cardinal        i    Convert numbers to words                     HIGHTOWE
::Fathom          RdpO Readability measurements of English text     KIMRYAN
::Hyphenate       Rdpf Syllable based hyphenation                   DCONWAY
::Infinitive      MdpO Find infinitive of a conjugated word         RSAVAGE
::Inflect         Mdpf English singular->plural and "a"->"an"       DCONWAY
::MatchNames      bdpf Smart matching for human names               BRIANL
::NameCase        Rdpf Convert NAMES and names to Correct Case      SUMMER
::NameParse       RdpO Manipulate persons name                      KIMRYAN
::Nickname        bdpf Genealogical nickname matching(Peggy=Midge)  BRIANL
::Ordinal         i    Convert numbers to words                     HIGHTOWE
::Squeeze         bdpf Shorten english text for Pagers/GSM phones   JARIAALTO
::Syllable        a    Estimate syllable count in words             GREGFAST

Lingua::EN::Numbers::
::Ordinate        Rdpf go from cardinal (53) to ordinal (53rd)      SBURKE

Lingua::RU::
::Charset         anpf Detect/Convert russian character sets.       FARBER

ERG               Rdpf An extensible report generator framework     PHOENIXL

PostScript::
::Barcode         bdpf Various types of barcodes as PostScript      COLEMAN
::Basic           bdpO Basic methods for postscript generation      STWIGGER
::Document        bdpO Generate multi-page PostScript               SHAWNPW
::Elements        bdpO Objects for shapes, lines, images            SHAWNPW
::Font            RdpO analyzes PostScript font files               JV
::FontInfo        RdpO analyzes Windows font info files             JV
::FontMetrics     RdpO analyzes Adobe Font Metric files             JV
::Metrics         bdpO Font metrics data used by PS::TextBlock      SHAWNPW
::Resources       RdpO loads Unix PostScript Resources file         JV
::TextBlock       bdpO Objects used by PS::Document                 SHAWNPW

Font::
::AFM             RdpO Parse Adobe Font Metric files                GAAS
::TFM             RdpO Read info from TeX font metric files         JANPAZ
::TTF             bdpO TrueType font manipulation module            MHOSKEN
::Fret            RdpO Fret - Font REporting Tool                   MHOSKEN

Number::
::Format          RdpO Package for formatting numbers for display   WRW

Number::Phone::
::US              Rdpf Validates several US phone number formats    KENNEDYH

Email::
::Find            adpf Find RFC 822 email addresses in plain text   MSCHWERN

Parse::
::ePerl           Rdcr Embedded Perl (ePerl) parser                 RSE
::Lex             adpO Generator of lexical analysers               PVERD
::RecDescent      MdpO Recursive descent parser generator           DCONWAY
::Tokens          bdpO Base class for parsing tokens from text      MCKAY
::Yapp            RdpO Generates OO LALR parser modules             FDESAR
::YALALR          RdpO Yet Another LALR parser                      SFINK
::Vipar           bdpO Visual LALR parser debugger                  SFINK

Search::
::Dict            Supf Search a dictionary ordered text file        P5P
::InvertedIndex   RdpO Inverted index database support              SNOWHARE
::Binary          Rdpf Generic binary search                        RANT

SGML::
::Element         cdpO Build a SGML element structure tree          LSTAF
::Parser          RdpO SGML instance parser                         EHOOD
::SPGrove         bd+O Load SGML, XML, and HTML files               KMACLEOD
::Entity          RdpO An entity defined in an SGML or XML document KMACLEOD

SGMLS             RdpO A Post-Processor for SGMLS and NSGMLS        INGOMACH

XML               RmhO Large collection of XML related modules      XMLML

XML::
::AutoWriter      RdpO DOCTYPE based XML output                     RBS
::CSV             i?cO Transform comma separated values to XML      ISTERIN
::Catalog         RdpO Resolve public identifiers and remap system  EBOHLMAN
::DOM             bmpO Implements Level 1 of W3's DOM               ENNO
::Doctype         RdpO A DTD object class                           RBS
::Dumper          ampO Converts XML from/to Perl code               EISEN
::Edifact         ???? Scripts for translating EDIFACT into XML     KRAEHE
::Element         RdpO XML elements with the same interface as HTML SBURKE
::Encoding        ???? Parses encoding map XML files                COOPERCL
::Generator       bdpO Generates XML documents                      BHOLZMAN
::Grove           RmpO Flexible lightweight mid-level XML objects   KMACLEOD
::PPD             RdpO PPD file format and XML parsing elements     MURRAY
::PYX             RdpO XML to PYX generator                         MSERGEANT
::Parser          bmcO Flexible fast parser with plug-in styles     COOPERCL
::QL              ???? Implements the XML Query Language            MSERGEANT
::Registry        ampO Implements a generic XML registry            EISEN
::Sablotron       RdcO Interface to the Sablotron XSLT processor    PAVELH
::TreeBuilder     RdpO Build a tree of XML::Element objects         SBURKE
::Writer          ???? Module for writing XML documents             DMEGG
::XPath           RdpO A set of modules for parsing and evaluating  MSERGEANT
::XQL             ampO Performs XQL queries on XML object trees     ENNO
::XSLT            RdcO Process XSL Transformational sheets          BRONG
::miniXQL         ???? Simplistic XQL-like search using streams     MSERGEANT

Frontier::
::RPC             ???? Performs Remote Procedure Calls using XML    KMACLEOD

RDF::
::Service         ampO RDF API with DBI and other backends          JONAS

RTF::
::Base            i    Classes for Microsoft Rich Text Format       NI-S
::Document        a pO Generate Rich Text (RTF) Files               RRWO
::Generator       idpO Next Generation of RTF::Document             RRWO
::Group           adpO Base class for manipulating Rich Text Format RRWO
::Parser          a    Base class for parsing RTF files             PVERD

SQL::
::Schema          bdpO Convert a data dictionary to SQL statements  TODD
::Statement       adcO Small SQL parser and engine                  JWIED
::Builder         adpO OO interface for creating SQL statements     ZENIN

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

FrameMaker        cdpO Top level FrameMaker interface               PEASE
FrameMaker::
::FDK             idcO Interface to Adobe FDK                       PEASE
::MIF             cdpO Parse and Manipulate FrameMaker MIF files    PEASE
::Control         cdpO Control a FrameMaker session                 PEASE

Marpa             cd+O Context Free Parser                          JKEGL

Chatbot::
::Eliza           RdpO Eliza algorithm encapsulated in an object    JNOLAN

Quiz::
::Question        cdpO Questions and Answers wrapper                RFOLEY

Template          RdpO Extensive Toolkit for template processing    ABW
dTemplate         bmpO Flexible templating system                   DLUX

Barcode::
::Code128         adpO Generate CODE 128 bar codes                  WRW

12) Option, Argument, Parameter and Configuration File Processing

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Getopt::
::ArgvFile        Rdpf Take options from files                      JSTENZEL
::Declare         MdpO An easy-to-use WYSIWYG command-line parser   DCONWAY
::EvaP            Mdpr Long/short options, multilevel help          LUSOL
::Gnu             adcf GNU form of long option handling             WSCOT
::Help            bdpf Yet another getopt, has help and defaults    IANPX
::Long            Sdpr Advanced handling of command line options    JV
::Mixed           Rdpf Supports both long and short options         CJM
::Regex           ad   Option handling using regular expressions    JARW
::Simple          MdpO A simple-to-use interface to Getopt::Long    RSAVAGE
::Std             Supf Implements basic getopt and getopts          P5P
::Tabular         adpr Table-driven argument parsing with help text GWARD
::Tiny            adpr Table of references interface, auto usage()  MUIR

Getargs::
::Long            cdpf Parses long function args f(-arg => value)   RAM

Argv              bdph Provide an OO interface to an ARGV           DSB
ConfigReader      cdpO Read directives from configuration file      AMW
Resources         bdpf Application defaults management in Perl      FRANCOC

App::             General application development tools
::Config          bdpO Configuration file mgmt                      ABW
::Manager         adch Installing/Managing/Uninstalling Software    MLEHMANN

Config::
::FreeForm        bdpf Provide in-memory configuration data         BTROTT
::IniFiles             Read/Write INI-Style configuration files     RBOW

CfgTie            adph Framework for tieing system admin tasks      RANDYM

13) Internationalization and Locale

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
I18N::
::Charset         Rdpf Character set names and aliases              MTHURN
::Collate         Sdpr Locale based comparisons                     JHI
::LangTags        Mdpf compare & extract language tags (RFC1766)    SBURKE
::WideMulti       i    Wide and multibyte character string          JHI

Locale::
::Country         Rdpf ISO 3166 two letter country codes            NEILB
::Date            adpf Month/weekday names in various languages     JHI
::Langinfo        cdcf The <langinfo.h> API                         JHI
::Language        Rdpf ISO 639 two letter language codes            NEILB
::Msgcat          RdcO Access to XPG4 message catalog functions     CHRWOLF
::PGetText        bdpf What GNU gettext does, written in pure perl  MSHOYHER
::SubCountry      RdpO ISO 3166-2 two letter subcountry codes       KIMRYAN
::gettext         Rdcf Multilanguage messages                       PVANDRY
::Maketext        RdpO Framework for software localization          SBURKE
::PO              RdpO Manipulate .po entries from gettext          ALANSZ

Unicode::
::String          RdcO String manipulation for Unicode strings      GAAS
::Map8            RdcO Convert between most 8bit encodings          GAAS
::Normal          i??? Composition, canonical ordering, blocks      MHOSKEN
::MapUTF8         Rdpf Conversions to and from arbitrary charsets   SNOWHARE

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

Cz::
::Cstocs          RdpO Charset reencoding                           JANPAZ
::Sort            RdpO Czech sorting                                JANPAZ
::Speak           bdpf number, etc. convertor to the Czech language YENYA

Geography::
::States          Rdp? Map states and provinces to their codes      ABIGAIL

Sort::
::ArbBiLex        Mdpf sort functions for arbitrary sort orders     SBURKE

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

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
User::
::Utmp            Rdcf Perl access to UNIX utmp(x)-style databases  MPIOTR
::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
PGP::
::Sign            bdpr Create/verify PGP/GnuPG signatures, securely RRA

GnuPG             bdpO Perl interface to the GNU privacy guard.     FRAJULAC
GnuPG::
::Interface       RdpO OO interface to GNU Privacy Guard            FTOBIN

DES               adcf DES encryption (libdes)                      EAYNG
Des               adcf DES encryption (libdes)                      MICB
GSS               adcO Generic Security Services API (RFC 2078)     MSHLD
OpenCA            RmpO Tools for running a Certification Authority  MADWOLF
SMIMEUtil         amhf Sign, encrypt, verify, decrypt S/MIME mail   SAMPO

Digest::
::MD5             Rdch  MD5 message digest algorithm                GAAS
::MD2             Rdch  MD2 message digest algorithm                GAAS
::SHA1            cdch  NIST SHA message digest algorithm           UWEH
::HMAC            Rdph  HMAC message integrity check                GAAS

Crypt::
::Beowulf         Rdpf An original, very fast encryption algorithm  SIFUKURT
::Blowfish        RdhO XS-based implementation of Blowfish          DPARIS
::Blowfish_PP     adpO Blowfish encryption algorithm in Pure Perl   MATTBM
::CBC             adpO Cipherblock chaining for Crypt::DES/IDEA     LDS
::CBCeasy         bdpf Easy things make really easy with Crypt::CBC MBLAZ
::DES             a    DES encryption (libdes)                      GARY
::ElGamal         bdpO ElGamal digital signatures and keys          VIPUL
::IDEA            a    International Data Encryption Algorithm      GARY
::Keys            adpO Management system for cryptographic keys     VIPUL
::OTP             Rdpf Implements One Time Pad encryption           SIFUKURT
::Passwd          Mdhf Perl wrapper around the UFC Crypt            LUISMUNOZ
::PasswdMD5       Mdhf Interoperable MD5-based crypt() function     LUISMUNOZ
::PRSG            a    160 bit LFSR for pseudo random sequences     GARY
::RC4             Rdpf Implements the RC4 encryption algorithm      SIFUKURT
::Random          bdpO Cryptographically Strong Random Numbers      VIPUL
::Rot13           cdpO simple encryption often seen on usenet       AYRNIEU
::RSA             bdpO RSA encryption, decryption, key generation   VIPUL
::Solitaire       Rdpf A very simple encryption system              SIFUKURT
::Twofish         Rdpf Twofish Encryption Algorothm                 NISHANT
::UnixCrypt       Rdpf Perl-only implementation of crypt(3)         MVORL
::RandPasswd      RdpO Random password generator based on FIPS-181  JDPORTER
::Rijndael        bdch AES/Rijndael Encryption Module               DIDO
::TripleDES       RdpO Triple DES encyption.                        VIPUL
::PGP5            bdpO An Object Oriented Interface to PGP5.        AGUL
::PGP6            cdpO An Object Oriented Interface to PGP6.        AGUL
::PGP             cdpO Unified OO Interface to PGP and GnuPG        AGUL
::GPG             bdpO An Object Oriented Interface to GnuPG        AGUL
::ECB             Mdph ECB mode for Crypt::DES, Blowfish, etc.      APPEL
::CipherSaber     bdpO OO module for CS-1 and CS-2 encryption       CHROMATIC

Authen::
::ACE             adcO Interface to Security Dynamics ACE (SecurID) DCARRIGAN
::Krb4            RdcO Interface to Kerberos 4 API                  JHORWITZ
::Krb5            RdcO Interface to Kerberos 5 API                  JHORWITZ
::PAM             bdch Interface to PAM library                     NIKIP
::TacacsPlus      adcO Authentication on tacacs+ server             MSHOYHER
::Ticket          adpO Suite consisting of master/client/tools      JSMITH

RADIUS::
::Dictionary      bdpO Object interface to RADIUS dictionaries      CHRMASTO
::Packet          bdpO Object interface to RADIUS (rfc2138) packets CHRMASTO
::UserFile        bdpO Manipulate a RADIUS users file               OEVANS

SSLeay            cdcO Interface to SSLeay                          EAYNG

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

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
URI::
::Attr            ampO Stores attributes in the URI name space      LWWWP
::Bookmark        bdpO A Class for bookmarks                        ASPIERS
::Bookmarks       bdpO A Class for bookmark collections             ASPIERS
::Escape          Rmpf General URI escaping/unescaping functions    LWWWP
::Find            adpf Find URIs in plain text                      MSCHWERN
::URL             RmpO Uniform Resource Locator objects             LWWWP

CGI::
::Application     RmpO Framework for building reusable web-apps     JERLBAUM
::ArgChecker      bdpO Consistent, extensible CGI param validation  DLOWE
::Authent         Mdpf request the HTTP authentification            JENDA
::Base            RmpO Complete HTTPD CGI Interface class           CGIP
::BasePlus        RmpO Extra CGI::Base methods (incl file-upload)   CGIP
::CList           bdpO Manages hierarchical collapsible lists       PEARCEC
::Cache           adpf Speed up slow CGI scripts by caching         BROCSEIB
::Carp            cmpf Drop-in Carp replacement for CGI scripts     CGIP
::Debug           Mdph show CGI debugging data                      JONAS
::Deurl           Mdpr decode the CGI parameters                    JENDA
::Enurl           Mdpr encode the CGI parameters                    JENDA
::Formalware      MdpO Convert an XML file to a suite of CGI forms  RSAVAGE
::Imagemap        Rdph Imagemap handling for specialized apps       MIKEH
::LogCarp         Rdph Error, log, bug streams, httpd style format  MIKEKING
::MiniSvr         RmpO Fork CGI app as a per-session mini server    CGIP
::Minimal         MdpO A micro-sized CGI handler                    SNOWHARE
::MxScreen        cdpO Screen multi-plexer framework                RAM
::Out             adpf Buffer CGI output and report errors          MUIR
::PathInfo        RdpO A lightweight PATH_INFO based CGI package    SNOWHARE
::Persistent      adpO Transparent State Persistence in CGI scripts VIPUL
::Query           adpO Parse CGI quiry strings                      MPECK
::QuickForm       Rdpf Handles UI & validation for CGI forms        SUMMER
::Request         RmpO Parse CGI request and handle form fields     CGIP
::Response        ampO Response construction for CGI applications   MGH
::Screen          adpO Create multi screen CGI-scripts              ULPFR
::Session         cdpO Persistent storage of complex data in CGI    ZED
::SpeedyCGI       bdcn Run CGI scripts persistenly                  HORROCKS
::Validate        adpO Advanced CGI form parser                     ZENIN
::WML             RdpO Subclass of CGI.pm for WML output            AWOOD
::XML             ampO Convert CGI.pm variables to/from XML         EISEN
::XMLForm         adpO Create/query XML for forms                   MSERGEANT

HTML::
::Base            adpO Object-oriented way to build pages of HTML   GAND
::CalendarMonth   RmpO Calendar Months as easy HTML::Element trees  MSISK
::Demoroniser     adpO Correct moronic and incompatible HTML        JDPORTER
::EP              adpO Modular, extensible Perl embedding           JWIED
::Element         RdpO Representation of a HTML parsing tree        SBURKE
::ElementGlob     RmpO Manipulate multiple HTML elements as one     MSISK
::ElementRaw      RmpO Graft HTML strings onto an HTML::Element     MSISK
::ElementSuper    RmpO Various HTML::Element extensions             MSISK
::ElementTable    RmpO Tables as easy HTML element structures       MSISK
::Embperl         Rmcf Embed Perl in HTML                           GRICHTER
::Entities        Rmpf Encode/decode HTML entities                  LWWWP
::FillInForm      adpO Fill in HTML forms, separating HTML and code TJMATHER
::Formatter       ampO Convert HTML to plain text or Postscript     LWWWP
::HeadParser      RmpO  Parse <HEAD> section of HTML documents      LWWWP
::LinkExtor       RmpO  Extract links from HTML documents           LWWWP
::Mason           bdpO Build sites from modular Perl/HTML blocks    JSWARTZ
::ParseForm       i    Parse and handle HTML forms via templates    NMONNET
::Parser          RmcO Basic HTML Parser                            LWWWP
::QuickCheck      cdpf Fast simple validation of HMTL text          YLU
::Simple          bdpf Simple functions for generating HTML         TOMC
::SimpleParse     RdpO Bare-bones HTML parser                       KWILLIAMS
::StickyForms     adpO HTML form generation for mod_perl/CGI        PMH
::Stream          RdpO HTML output stream                           ERYQ
::Subtext         adpO Text substitutions on an HTML template       KAELIN
::Table           RupO Write HTML tables via spreadsheet metaphor   AJPEACOCK
::TableExtract    RmpO Flexible HTML table extraction               MSISK
::TableLayout     bdpO an extensible OO layout manager              PERSICOM
::Template        MmpO a simple HTML templating system              SAMTREGAR
::TokeParser      RmpO  Alternative HTML::Parser interface          LWWWP
::Validator       bdpO HTML validator utilizing nsgmls and libwww   SAIT
::Tagset          Rdpf data tables useful in parsing HTML           SBURKE

HTML::Widgets::
::DateEntry       RdpO Creates date entry widgets for HTML forms.   KENNEDYH
::Menu            RdpO Builds an HTML menu                          FRANKIE
::Search          RdpO Perl module for building searches returning  FRANKIE

HTTP::
::Browscap        cdpO Provides info on web browser capabilities    JAMESPO
::BrowserDetect   adph Detect browser, version, OS from UserAgent   LHS
::Cookies         RmpO Storage of cookies                           LWWWP
::DAV             ampO A client module for the WebDAV protocol      PCOLLINS
::Daemon          RmpO Base class for simple HTTP servers           LWWWP
::Date            Rmpf Date conversion for HTTP date formats        LWWWP
::Headers         RmpO Class encapsulating HTTP Message headers     LWWWP
::Message         RmpO Base class for Request/Response              LWWWP
::Negotiate       Rmpf HTTP content negotiation                     LWWWP
::Request         RmpO Class encapsulating HTTP Requests            LWWWP
::Response        RmpO Class encapsulating HTTP Responses           LWWWP
::Status          Rmpf HTTP Status code processing                  LWWWP
::GHTTP           RdcO Perl interface to the gnome ghttp library    MSERGEANT
::WebTest         bdph Run tests on remote URLs or local web files  RANDERSON

HTTP::Request::
::Common          Rmpf Functions that generate HTTP::Requests       LWWWP
::Form            RdpO Generates HTTP::Request objects out of forms GBAUER

WAP::
::Wbmp            i??? Wireless bitmap manipulation module          SAA
::WML             i??? Wireless Markup language routines            SAA

WML::
::Card            RdpO Builds WML code for different wap browsers   MALVARO
::Deck            RdpO WML Deck generator                           MALVARO

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

WWW::
::BBSWatch        adpO email WWW bulletin board postings            TAYERS
::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

WWW::Search::
::AlltheWeb       RdpO Class for searching AlltheWeb                JSMYSER
::Deja            RdpO Class for www.deja.com searching             MTHURN
::Go              RdpO Backend class for searching with go.com      ALIAN

LWP               RmpO Libwww-perl                                  LWWWP
LWP::
::Conn            ampO LWPng stuff                                  LWWWP
::MediaTypes      Rmpf Media types and mailcap processing           LWWWP
::Parallel        RmpO Allows parallel http and ftp access with LWP MARCLANG
::Protocol        RmpO LWP support for URL schemes (http, file etc) LWWWP
::RobotUA         RmpO A UserAgent for robot applications           LWWWP
::Simple          Rmpf Simple procedural interface to libwww-perl   LWWWP
::UA              ampO LWPng stuff                                  LWWWP
::UserAgent       RmpO A WWW UserAgent class                        LWWWP

MIME::
::Base64          Rdhf Encode/decode Base 64 (RFC 2045)             GAAS
::QuotedPrint     Rdpf Encode/decode Quoted-Printable               GAAS
::Decoder         RdpO OO interface for decoding MIME messages      ERYQ
::Entity          RdpO An extracted and decoded MIME entity         ERYQ
::Head            RdpO A parsed MIME header                         ERYQ
::IO              ?dpO DEPRECATED: now part of IO::                 ERYQ
::Latin1          ?dpO DEPRECATED and removed                       ERYQ
::Lite            RdpO Single module for composing simple MIME msgs ERYQ
::Parser          RdpO Parses streams to create MIME entities       ERYQ
::Types           adpr Returns the MIME type for a filename/suffix  OKAMOTO
::Words           Rdpf Encode/decode RFC1522-escaped header strings ERYQ

MIME::Lite::
::HTML            bmpO Provide routine to transform HTML to MIME    ALIAN

Apache            RmcO Interface to the Apache server API           DOUGM

Apache PerlHandler modules

Apache::
::ASP             bdpO Implement Active Server Pages                CHAMAS
::AdBanner        cdpf Ad banner server                             CHOLET
::AddrMunge       bdpf Munge email addresses in webpages            MJD
::Archive         bdpf Make linked contents pages of .tar(.gz)      JPETERSON
::AutoIndex       Rdcf Lists directory content                      GOZER
::AxKit           RdcO XML Application Server for Apache            MSERGEANT
::BBS             cdpO BBS like System for Apache                   MKOSSATZ
::Cachet          i    OutputChain with caching                     MERLYN
::CallHandler     cdpf Map filenames to subroutine calls            GKNOPS
::Compress        bdpO Compress content on the fly                  KWILLIAMS
::Dir             i    OO (subclassable) mod_dir replacement        DOUGM
::Dispatch        bmpf Call PerlHandlers as CGI scripts             GEOFF
::Embperl         Rmcf Embed Perl in HTML                           GRICHTER
::EmbperlChain    bdpO Feed handler output to Embperl               CHOLET
::FTP             i    Full-fledged FTP proxy                       PMKANE
::Filter          RdpO OutputChain like functionality               KWILLIAMS
::Forward         bdpO OutputChain like functionality               MPB
::Gateway         bdpf A multiplexing gateway                       CCWF
::GzipChain       bmpf Compress files on the fly                    ANDK
::Layer           bdpf Layer content tree over one or more          SAM
::Magick          bdpf Image conversion on-the-fly                  MPB
::Mason           bdpO Build sites w/ modular Perl/HTML blocks      JSWARTZ
::ModuleDoc       bdpf Self documentation for Apache C modules      DOUGM
::NNTPGateway     adpf A Web based NNTP (usenet) interface          BOUBAKER
::NavBar          bdpO Navigation bar generator                     MPB
::OWA             bdpf Runs Oracle PL/SQL Web Toolkit apps          SVINTO
::OutputChain     bmpO Chain output of stacked handlers             JANPAZ
::PageKit         ampO Application framework w/ HTML::Template      TJMATHER
::PassFile        bdpf Send file via OutputChain                    ANDK
::PerlRun         Smpf Run unaltered CGI scripts                    APML
::PrettyPerl      Rdpf Syntax highlighting for Perl files           RA
::PrettyText      bdpf Re-format .txt files for client display      CHTHORMAN
::RandomLocation  bdpf Random image display                         RKOBES
::Registry        Smpf Run unaltered CGI scripts                    APML
::Reload          RdpO Reload changed modules (extending StatINC)   MSERGEANT
::RobotRules      cdpf Enforce robot rules (robots.txt)             PARKER
::SSI             RmpO Implement server-side includes in Perl       KWILLIAMS
::SSIChain        bmpO SSI on other modules output                  JANPAZ
::Sandwich        bmpf Layered document (sandwich) maker            VKHERA
::ShowRequest     bdpf Show phases and module participation         DOUGM
::SimpleReplace   ampf Simple replacement template tool             GEOFF
::Stage           Rdpf Manage a document staging directory          ANDK
::TarGzip         c    Manage .tar.gz file                          ZENIN
::TimedRedirect   bdpf Redirect urls for a given time period        PETERM
::UploadSvr       bdpO A lightweight publishing system              ANDK
::VhostSandwich   cdpf Virtual host layered document maker          MARKC
::WDB             bdpf Database query/edit tool using DBI           JROWE
::WebSQL          cdpO Adaptation of Sybase's WebSQL                GUNTHER
::ePerl           Rdpr Fast emulated Embedded Perl (ePerl)          RSE
::iNcom           bdpf An e-commerce framework                      FRAJULAC

Apache PerlInitHandler modules

Apache::
::RequestNotes    ampf Pass cookie & form data around pnotes        GEOFF

Apache PerlAuthenHandler modules

Apache::
::AuthAny         bdpf Authenticate with any username/password      MPB
::AuthenCache     bmpf Cache authentication credentials             JBODNAR
::AuthCookie      RdpO Authen + Authz via cookies                   KWILLIAMS
::AuthenDBI       bmpO Authenticate via Perl's DBI                  MERGL
::AuthenGSS       cdpf Generic Security Service (RFC 2078)          DOUGM
::AuthenIMAP      bdpf Authentication via an IMAP server            MICB
::AuthenPasswdSrv bdpf External authentication server               JEFFH
::AuthenPasswd    bdpf Authenticate against /etc/passwd             DEP
::AuthLDAP        bdpf LDAP authentication module                   CDONLEY
::AuthPerLDAP     bdpf LDAP authentication module (PerLDAP)         HENRIK
::AuthenNIS       bdpf NIS authentication                           DEP
::AuthNISPlus     bdpF NIS Plus authentication/authorization        VALERIE
::AuthenRaduis    bdpf Authentication via a Radius server           DANIEL
::AuthenSmb       bdpf Authenticate against NT server               PARKER
::AuthenURL       bdpf Authenticate via another URL                 JGROENVEL
::DBILogin        bdpf Authenticate to backend database             JGROENVEL
::DCELogin        bdpf Obtain a DCE login context                   DOUGM
::PHLogin         bdpf Authenticate via a PH database               JGROENVEL
::TicketAccess    bdpO Ticket based access/authentication           MPB

Apache PerlAuthzHandler modules

Apache::
::AuthzAge        bmpf Authorize based on age                       APML
::AuthzDCE        cdpf DFS/DCE ACL based access control             DOUGM
::AuthzDBI        bmpO Group authorization via Perl's DBI           MERGL
::AuthzGender     bdpf Authorize based on gender                    MPB
::AuthzNIS        bdpf NIS authorization                            DEP
::AuthzPasswd     bdpf Authorize against /etc/passwd                DEP
::AuthzSSL        bdpf Authorize based on client cert               MPB
::RoleAuthz       i    Role-based authorization                     DOUGM

Apache PerlAccessHandler modules

Apache::
::AccessLimitNum  bmpf Limit user access by number of requests      APML
::BlockAgent      bdpf Block access from certain agents             MPB
::DayLimit        bmpf Limit access based on day of week            MPB
::IPThrottle      cdpf Limit bandwith consumption by IP             MERLYN
::RobotLimit      cdpf Limit access of robots                       PARKER
::SpeedLimit      bdpf Control client request rate                  MPB

Apache PerlTypeHandler modules

Apache::
::MIME            bdcf Perl implementation of mod_mime              MPB
::MimeDBI         bdpf Type mapping from a DBI database             MPB
::MimeXML         bdpf mime encoding sniffer for XML files          MSERGEANT

Apache PerlTransHandler modules (May also include a PerlHandler)

Apache::
::AdBlocker       bdpf Block advertisement images                   MPB
::AddHostPath     adpf Prepends parts of hostname to URI            RJENKS
::AnonProxy       bdpf Anonymizing proxy                            MPB
::Checksum        bdpf Manage document checksum trees               MPB
::DynaRPC         i    Dynamically translate URIs into RPCs         DOUGM
::LowerCaseGETs   bdpf Lowercase URI's when needed                  PLISTER
::MsqlProxy       bmpf Translate URI's into mSQL queries            APML
::ProxyPass       bdpf Perl implementation of ProxyPass             MJS
::ProxyPassThru   bdpO Skeleton for vanilla proxy                   RMANGI
::ProxyCache      i    Caching proxy                                DOUGM
::StripSession    bdpf Strip session info from URI                  MPB
::Throttle        bdpf Speed-based content negotiation              DONS
::TransLDAP       bdpf Translate URIs to LDAP queries               CDONLEY

Apache PerlFixupHandler modules

Apache::
::RefererBlock    bdpf Block based on MIME type + Referer           CHOLET
::Timeit          bmpf Benchmark PerlHandlers                       APML
::Usertrack       bdpf Perl version of mod_usertrack                ABH

Apache PerlLogHandler modules

Apache::
::DBILogConfig    bdpf Custom format logging via DBI                JBODNAR
::DBILogger       bdpf Logging via DBI                              ABH
::DumpHeaders     bdpf Watch HTTP transaction via headers           DOUGM
::LogMail         bdpf Log certain requests via email               MPB
::Traffic         bdpf Logs bytes transferred, per-user basis       MAURICE
::WatchDog        c    Look for problematic URIs                    DOUGM

Apache PerlChildInitHandler modules

Apache::
::Resource        Smpf Limit resources used by httpd children       APML

Apache Server Configuration

Apache::
::ConfigLDAP      i    Config via LDAP and <Perl>                   MARKK
::ConfigDBI       i    Config via DBI and <Perl>                    MARKIM
::ModuleConfig    SmcO Interface to configuration API               APML
::PerlSections    SmpO Utilities for <Perl> sections                APML
::httpd_conf      bmpO Methods to configure and run an httpd        APML
::src             SmpO Finding and reading bits of source           APML

Apache Database modules

Apache::
::DBI             bmpO Persistent DBI connection mgmt.              MERGL
::Mysql           bdpO Persistent connection mgmt. for Mysql        NJENSEN

Apache::Sybase::
::DBlib           bmpO Persistent DBlib connection mgmt.            BMILLETT
::CTlib           bapO Persistent CTlib connection mgmt.            MDOWNING

Interfaces and integration with Apache C structures and modules

Apache::
::Backhand        bdcr Bridge between mod_backhand + mod_perl       DLOWE
::CmdParms        SmcO Interface to Apache cmd_parms struct         APML
::Command         bmcO Interface to Apache command_rec struct       APML
::Connection      SmcO Inteface to Apache conn_rec struct           APML
::Constants       Smcf Constants defined in httpd.h                 APML
::ExtUtils        SmpO Utils for Apache:C/Perl glue                 APML
::File            SmcO Methods for working with files               APML
::Handler         bmcO Interface to Apache handler_rec struct       APML
::Log             SmcO ap_log_error interface                       APML
::LogFile         bmcO Interface to Apache's piped logs, etc.       APML
::Module          bmcO Interface to Apache module struct            APML
::Scoreboard      RdcO Perl interface to Apache's scoreboard.h      DOUGM
::Server          SmcO Interface to Apache server_rec struct        APML
::SubProcess      cmcO Interface to Apache subprocess API           APML
::Table           SmcO Interface to Apache table struct + API       APML
::URI             SmcO URI component parsing and unparsing          APML
::Util            Smcf Interface to Apache's util*.c functions      APML

HTTP Method handler

Apache::
::PATCH           bdpf HTTP PATCH method handler                    MPB
::PUT             cdpf HTTP PUT method handler                      SORTIZ
::Roaming         bdpO PUT/GET/MOVE/DELETE (Netscape Roaming)       JWIED

Watchdog and Monitoring tools

Apache::
::SizeLimit       Smpf Graceful exit for large children             APML
::GTopLimit       Rdpn Child exit on small shared or large mem      STAS
::Status          Smpf Embedded interpreter runtime status          APML
::VMonitor        Rdpn Visual System and Processes Monitor          STAS

Apache::Watchdog::
::RunAway         Rdpn RunAway processes watchdog/terminator        STAS

Development and Debug tools

Apache::
::DB              amcO Hook Perl interactive DB into mod_perl       DOUGM
::Debug           Rmpf mod_perl debugging utilities                 APML
::DebugInfo       ampO Per-request data logging                     GEOFF
::DProf           bmcf Hook Devel::DProf into mod_perl              DOUGM
::FakeRequest     ampO Implement Apache methods off-line            APML
::Leak            bmcf Memory leak tracking routines                APML
::Peek            amcf Devel::Peek for mod_perl                     APML
::SawAmpersand    bmpf Make sure noone is using $&, $' or $`        APML
::SmallProf       bmpf Hook Devel::SmallProf into mod_perl          DOUGM
::StatINC         Smpf Reload require'd files when updated          APML
::Symbol          bmcO Things for symbol things                     APML
::Symdump         bmpf Symbol table snapshots to disk               APML
::test            Smpf Handy routines for 'make test' scripts       APML

Miscellaneous Apache modules

Apache::
::Byterun         i    Run Perl bytecode modules                    DOUGM
::Cookie          amcO C version of CGI::Cookie                     APML
::Icon            bdcO Access to AddIcon* configuration             DOUGM
::Include         Smpf mod_include + Apache::Registry handler       APML
::Mmap            bdcf Share data via Mmap module                   FLETCH
::ParseLog        bdpO OO interface to Apache log files             AKIRA
::RegistryLoader  SmpO Apache::Registry startup script loader       APML
::Request         amcO CGI.pm functionality using API methods       APML
::Safe            ampO Adaptation of "safecgiperl"                  APML
::Session         bmpO Maintain client <-> httpd session/state      JBAKER
::Servlet         ampO Interface to the Java Servlet engine         IKLUFT
::SIG             SmpO Signal handlers for mod_perl                 APML
::State           i    Powerful state engine                        RSE
::TempFile        bdpf Manage temporary files                       TOMHUGHES
::Upload          amcO File upload class                            APML

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
::Server          adcO Perl interface to Netscape httpd API         BSUGARS

HyperWave::
::CSP             cdpO Interface to HyperWave's HCI protocol        GOSSAMER

WebFS::
::FileCopy        Rdpf Get, put, copy, delete files located by URL  BZAJAC

WebCache::
::Digest          bdpf Internet Cache Protocol (RFCs 2186 and 2187) MHAMILTON

ASP               Rdpr Perl interface to ASP PerlScript             TIMMY
Authorizenet      bdpf Get Credit Card Info from authorizenet       DLINCOLN
BizTalk           RdpO Microsoft BizTalk Framework Toolkit          SIMONJ
CGI_Lite          MnpO Light-weight interface for fast apps         SHGUN
CIPP              RdpO Preprocessor for embedding Perl, SQL in HTML JRED
Catalog           bmpO Manage/display resources catalog (URLs etc.) LDACHARY
PApp              adch Multi-page-state-preserving web applications MLEHMANN
WDDX              RdpO Allows distributed data exchange via XML     GUELICH
WING              RmhO Apache based IMAP/NNTP Gateway               MICB
WOMP              cdpO CGI App Dev Suite: authen/state/html         SPADKINS

FCGI              Rdcr Fast CGI                                     SKIMO
FCGI::
::ProcManager     bdpO A FastCGI process manager                    JURACH

16) Server and Daemon Utilities

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Event             bmch fast, generic event loop                     JPRIT
Event::
::Stats           Rmcf Collects statistics for Event                JPRIT
::tcp             bmpO TCP session layer library                    JPRIT

EventServer       RupO Triggers objects on i/o, timers & interrupts JACKS
::Functions       Rupf Utility functions for initializing servers   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
Mud               cdcO A multi-user online interactive game server  GED

NetServer::
::Compiler        idph State machine compiler for TCP/IP servers    CHSTROSS
::Generic         RdpO generic OOP class for internet servers       CHSTROSS
::Portal          bmpO Sets up a mini-server accessible via telnet  JPRIT

Time::
::Warp            Rmcf Change the start and speed of Event time     JPRIT

Spool::
::Queue           i    Generic printer spooling facilities          RAM

17) Archiving, Compression and Conversion

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Compress::
::Bzip2           Rdcf Interface to the Bzip2 compression library   AZEMGI
::LZO             Rdcf Interface to the LZO compression library     MFX
::LZV1            RdcO Leight-weight Lev-Zimpel-Vogt compression    MLEHMANN
::Zlib            RdcO Interface to the Info-Zip zlib library       PMQS

Convert::
::ASN1            adpO Standard en/decode of ASN.1 structures       GBARR
::BER             adpO Class for encoding/decoding BER messages     GBARR
::BinHex          anpO Convert to/from RFC1741 HQX7 (Mac BinHex)    ERYQ
::EBCDIC          adpf ASCII to/from EBCDIC                         CXL
::Recode          Rdpf Mapping functions between character sets     GAAS
::SciEng          bdpO Convert numbers with scientific notation     COLINK
::Translit        MdpO String conversion among many character sets  GENJISCH
::UU              bdpf UUencode and UUdecode                        ANDK
::UUlib           Rdcr Intelligent de- and encode (B64, UUE...)     MLEHMANN

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
::Zip             RdpO Provides an interface to ZIP archive files   NEDKONZ

PPM               Rdpf Perl Package Manager                         MURRAY

RPM               adcO RPM package management                       RJRAY
RPM::
::Constants       adcO Constants for RPM package management         RJRAY
::Database        adcO DB interface for RPM package management      RJRAY
::Headers         adcO Headers for RPM package management           RJRAY

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

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
ElectricArc       RdpO Generic diagram manipulation toolset         SELKOVJR
GIFgraph          RdpO Obsolete, see GD::Graph                      MVERB
Gimp              Mmch Rich interface to write plugins for The Gimp MLEHMANN
GraphViz          RdpO Interface to the GraphViz graphing tool      LBROCARD
OpenGL            adcf Interface to OpenGL drawing/imaging library  FIJI
PGPLOT            Rdof PGPLOT plotting library - scientific graphs  KGB
PixDraw           adcO Drawing and manipulating true color images   KSB
RenderMan         a    Manipulate RenderMan objects                 GMLEWIS
T3D               cdpO Realtime extensible 3D rendering             GJB
ThreeD            i    Namespace root for all kinds of 3D modules   ADESC

GD                adcO Interface to Gd Graphics Library             LDS
GD::
::Barcode         bdpO Create barcode image with GD                 KWITKNR
::Graph           RdpO Create charts using GD                       MVERB
::Text            RdpO Classes for string handling with GD          MVERB

VRML              RdpO VRML methods independent of specification    HPALM
VRML::
::VRML1           RdpO VRML methods with the VRML 1.0 standard      HPALM
::VRML2           RdpO VRML methods with the VRML 2.0 standard      HPALM
::Color           Rdpf color functions and X11 color names          HPALM
::Base            RdpO common basic methods                         HPALM
::Browser         i    A complete VRML viewer                       LUKKA

Graphics::
::Libplot         RdcO Binding for C libplotter plotting library    JLAPEYRE
::Plotter         Rd+O Binding for C++ libplotter plotting library  MAKLER
::Simple          idcO Simple drawing primitives                    NEERI
::Turtle          idp  Turtle graphics package                      NEERI

Image::
::Colorimetry     cdpO transform colors between colorspaces         JONO
::DS9             adpO Interface to SAO DS9 image & analysis prog   DJERIUS
::Grab            RdpO Grabbing images off the Internet             MAHEX
::Magick          RdcO Read, query, transform, and write images     JCRISTY
::ParseGIF        RdpO Parse GIF images into component parts        BENL
::Size            Rdpf Measure size of images in common formats     RJRAY
::Info            RdpO Extract meta information from image files    GAAS

Chart::
::Base            RdpO Business chart widget collection             NINJAZ
::Gdchart         bdch based on Bruce V's C gdchart distribution    MHEMPEL
::Graph           Rmpr front-end to gnuplot and XRT                 MHYOUNG
::PNGgraph        RdpO Package to generate PNG graphs, uses GD.pm   SBONDS
::Pie             adpO Implements "new Chart::Pie()"                KARLON
::Plot            bdcO Graph two-dimensional data (uses GD.pm)      SMORTON
::XMGR            Rdph interface to XMGR plotting package           TJENNESS

Xmms              bdcO Interactive remote control shell for xmms    DOUGM
Xmms::
::Config          bdcO Perl interface to the xmms_cfg_* API         DOUGM
::Remote          bdcO Perl interface to the xmms_remote_* API      DOUGM
::Plugin          i    Perl interface to the xmms plugin APIs       DOUGM

Flash::
::SWF             cmpO Read/Write Macromedia Flash SWF files        SABREN

19) Mail and Usenet News

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Mail::
::Address         adpf Manipulation of electronic mail addresses    GBARR
::Alias           bdpO Manipulate E-mail aliases and alias files    ZELT
::Audit           RdpO Toolkit for constructing mail filters        SIMON
::Cap             adpO Parse mailcap files as specified in RFC 1524 GBARR
::CheckUser       bdpf Checking email addresses for validness       ILYAM
::Ezmlm           bdpO Object methods for ezmlm mailing lists       GHALSE
::Field           RdpO Base class for handling mail header fields   GBARR
::Folder          adpO Base-class for mail folder handling          KJOHNSON
::Freshmeat       RdpO Parses newsletters from http://freshmeat.net ASPIERS
::Header          RdpO Manipulate mail RFC822 compliant headers     GBARR
::Internet        adpO Functions for RFC822 address manipulations   GBARR
::MH              adcr MH mail interface                            MRG
::Mailer          adpO Simple mail agent interface (see Mail::Send) GBARR
::POP3Client      RdpO Support for clients of POP3 servers          SDOWD
::Procmail        Rdpf Procmail-like facility for creating easy mai JV
::Send            adpO Simple interface for sending mail            GBARR
::Sender          MdpO socket() based mail with attachments, SMTP   JENDA
::Sendmail        Rdpf Simple platform independent mailer           MIVKOVIC
::UCEResponder    i    Spamfilter                                   CHSTROSS
::Util            adpf Mail utilities (for by some Mail::* modules) GBARR
::IMAPClient      RdpO An IMAP Client API                           DJKERNEN

Mail::Field::
::Received        RdpO Parses Received headers as per RFC822        ASPIERS

News::
::Article         adpO Module for handling Usenet articles          AGIERTH
::Gateway         ampO Mail/news gatewaying, moderation support     RRA
::NNTPClient      bdpO Support for clients of NNTP servers          RVA
::Newsrc          adpO Manage .newsrc files                         SWMCD
::Scan            cdpO Gathers and reports newsgroup statistics     GBACON

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

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

IMAP::
::Admin           RdpO IMAP Administration                          EESTABROO

Sendmail::
::Milter          Rdch Write mail filters for sendmail in Perl      CYING

20) Control Flow Utilities (callbacks and exceptions etc)

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

Hook::
::PrePostCall     adpO Add actions before and after a routine       PVERD

Memoize           bdpr Automatically cache results of functions     MJD
Memoize::
::ExpireLRU       Rdpr Provide LRU Expiration for Memoize           BPOWERS

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

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
IO::
::AtomicFile      RdpO Write a file which is updated atomically     ERYQ
::Dir             cdpO Directory handle objects and methods         GBARR
::File            cdpO Methods for disk file based i/o handles      GBARR
::Handle          cdpO Base class for input/output handles          GBARR
::Lines           RdpO I/O handle to read/write to array of lines   ERYQ
::Pipe            cdpO Methods for pipe handles                     GBARR
::Ptty            amcf Pseudo terminal interface functions          RGIERSIG
::Pty             cdpO Methods for pseudo-terminal allocation etc   PEASE
::React           RdpO OO Expect-like communication                 GARROW
::STREAMS         cdcO Methods for System V style STREAMS control   NI-S
::Scalar          RdpO I/O handle to read/write to a string         ERYQ
::ScalarArray     RdpO I/O handle to read/write 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
::Stty            bmpf POSIX compliant stty interface               RGIERSIG
::Tee             RdpO Multiplex output to multiple handles         KENSHAN
::Wrap            RdpO Wrap old-style FHs in standard OO interface  ERYQ
::WrapTie         RdpO Tie your handles & retain full OO interface  ERYQ
::Zlib            adpO IO:: style interface to Compress::Zlib       TOMHUGHES

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::
::Agent           adpO A general logging framework                  RAM
::Dispatch        RdpO Log messages to multiple outputs             DROLSKY
::Topics          Rdpf Control flow of topic based logging messages JARW
::TraceMessages   Rdpf Print developer's trace messages             EDAVIS

Log::Agent::
::Logger          cdpO Application-level logging interface          RAM
::Rotate          adpO Logfile rotation config and support          RAM

Expect            RdpO Close relative of Don Libes' Expect in perl  RGIERSIG

22) Microsoft Windows Modules

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Win32::
::ADO             adpf ADO Constants and helper functions           MSERGEANT
::ASP             Rdpr Makes PerlScript ASP development easier      WNODOM
::AbsPath         Rdpf relative paths to absolute, understands UNCs JENDA
::AdminMisc       Rdcf Misc admin and net functions                 DAVEROTH
::COM             cd+O Access to native COM interfaces              JDB
::ChangeNotify    bdcO Monitor changes to files and directories     CJM
::Clipboard       Rdch Interaction with the Windows clipboard       ACALPINI
::Console         Rdch Win32 Console and Character mode functions   ACALPINI
::Event           bdcO Use Win32 event objects for IPC              CJM
::EventLog        adcf Interface to Win32 EventLog functions        WIN32
::FUtils          bdcf Implements missing File Utility functions    JOCASA
::FileOp          Mdpf file operations + fancy dialogs, INI files   JENDA
::FileType        RdpO modify Win32 fily type mapping               JENDA
::GD              RdcO Win32 port of the GD extension (gif module)  DAVEROTH
::GUI             bmch Perl-Win32 Graphical User Interface          ACALPINI
::GuiTest         adcf SendKeys, FindWindowLike and more            ERNGUI
::IPC             bdcO Base class for Win32 synchronization objects CJM
::Internet        RdcO Perl Module for Internet Extensions          ACALPINI
::Message         bdcf Network based message passing                DAVEROTH
::Mutex           bdcO Use Win32 mutex objects for IPC              CJM
::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             Rm+h Interface to OLE Automation                  JDB
::Pipe            Rd+O Named Pipes and assorted function            DAVEROTH
::Process         adcf Interface to Win32 Process functions         WIN32
::RASE            Rdpf Dialup entries and connections on Win32      MBLAZ
::Registry        adcf Interface to Win32 Registry functions        WIN32
::Semaphore       bdcO Use Win32 semaphore objects for IPC          CJM
::SerialPort      RdpO Win32 Serial functions/constants/interface   BBIRTH
::Shortcut        Rd+O Manipulate Windows Shortcut files            ACALPINI
::Sound           Rdch An extension to play with Windows sounds     ACALPINI
::WinError        adcf Interface to Win32 WinError functions        WIN32
::SystemInfo      RdpO Memory and Processor information             CJOHNSTON
::API             RdcO Perl Win32 API Import Facility               ACALPINI

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

Win32API::
::CommPort        RdpO Win32 Serial functions/constants/interface   BBIRTH
::Console         cdcf Win32 Console Window functions/consts        TYEMQ
::File            cdcf Win32 file/dir functions/constants           TYEMQ
::Registry        adcf Win32 Registry functions/constants           TYEMQ
::WinStruct       cdcf Routines for Win32 Windowing data structures TYEMQ
::Window          cdcf Win32 Windowing functions/constants          TYEMQ

23) Miscellaneous Modules

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
ARS               Mmhh Interface to Remedy's Action Request API     JMURPHY
Agent             cdpO Transportable Agent module                   SPURKIS
Archie            Rdpf Archie queries via Prospero ARDP protocol    GBOSS
BnP               RdhO Build'n'Play all-purpose batch install. tool STBEY
Bundle            i    Namespace reserved for modules collections   ANDK
CPAN              RdpO Perl Archive browse and download             ANDK
Gedcom            bmpO Interface to genealogy Gedcom files          PJCJ
Logfile           RdpO Generic methods to analyze logfiles          ULPFR
NetObj            adpO Module loading in real time over TCP/IP      JDUNCAN
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

AI::
::Fuzzy           RdpO Perl extension for Fuzzy Logic               SABREN
::jNeural         RdcO Jet's Neural Architecture                    JETTERO
::NeuralNet       RdpO A simple back-prop neural net                JBRYAN

Astro::
::Coord           Rdpf Transform telescope and source coordinates   CPHIL
::Misc            Rdpf Miscellaneous astronomical routines          CPHIL
::MoonPhase       Rdpf Information about the phase of the Moon.     RPIKKARA
::SLA             Rdcf Interface to SLALIB positional astronomy lib TJENNESS
::SunTime         cdpf Calculate sun rise/set times                 ROBF
::Time            Rdpf General time conversions for Astronomers     CPHIL
::Sunrise         RdpO Computes sunrise/sunset for a given day      RKHILL

Audio::
::CD              bdcO Perl interface to libcdaudio (cd + cddb)     DOUGM
::Sox             i    sox sound library as one or more modules     NI-S

Audio::Play::
::MPG123          RdcO Generic frontend for MPG123                  MLEHMANN

MPEG::
::ID3v1Tag        MdpO ID3v1 MP3 Tag Reader/Writer                  SVANZOEST
::ID3v2Tag        bdpO OO, extensible ID3 v2.3 tagging module       MDIMEO
::MP3Play         RdhO Create your own MPEG audio player            JRED

MP3::
::Info            bdpf Manipulate / fetch info from MP3 audio files CNANDOR
::Tag             bdpO Tag - Module for reading tags of mp3 files   THOGEE

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

Bio               i    Utilities for molecular biology              SEB

Business::
::Cashcow         i??? Internet payment with the Danish PBS         GKE
::CreditCard      Rdpf Credit card number check digit test          JONO
::ISBN            RdpO Work with ISBN as objects                    BDFOY
::ISSN            adpO Object and functions to work with ISSN       SAPAPO
::OnlinePayment   RdpO Ecommerce middleware                         JASONK
::UPC             ???? manipulating Universal Product Codes         ROBF
::US_Amort        Mdph US-style loan amortization calculations      SBURKE

Chemistry::
::Elements        RdpO Working with Chemical Elements               BDFOY
::Isotopes        idpO extends Elements to deal with isotopes       BDFOY

Cisco::
::Conf            adpO Cisco router administratian via TFTP         JWIED

FAQ::
::OMatic          RdpO A CGI-based FAQ/help database maintainer     JHOWELL

FestVox           i??? Build synthetic voices (cf. www.festvox.org) LENZO

Finance::
::Quote           RmpO Fetch stock prices over the Internet         PJF
::QuoteHist       bdpO Historical stock quotes from multiple sites  MSISK

Games::
::Cards           adpO Tools to write card games in Perl            AKARGER
::Dice            cdpf Simulates rolling dice                       PNE
::Hex             cdpO Object library for hexmap-based board games  JHKIM
::WordFind        bdpO Generate word-find type puzzles              AJOHNSON
::Alak            Rdpf a simple gomoku-like game                    SBURKE
::Dissociate      Mdpf a Dissociated Press algorithm and filter     SBURKE
::Worms           RdpO A life simulator for Conway/Patterson worms  SBURKE

Geo::
::METAR           Rdpf Process Aviation Weather (METAR) Data        JZAWODNY
::Storm_Tracker   i    Retrieves tropical storm advisories          CARPENTER
::WeatherNOAA     Rdpf Current/forecast weather from NOAA           MSOLOMON

HP200LX::
::DB              cdpO Handle HP 200LX palmtop computer database    GGONTER
::DBgui           cdpO Tk base GUI for HP 200LX db files            GGONTER

LEGO::
::RCX             bdpO Control you Lego Mindstorm RCX computer      JQUILLAN

MIDI              Mdph read/edit/compose MIDI files                 SBURKE
MIDI::
::Realtime        cdpO Interacts with MIDI devices in realtime      FOOCHRE

Penguin           RdpO Remote Perl in Secure Environment            AMERZKY
Penguin::
::Easy            RdpO Provides quick, easy access to Penguin API   JDUNCAN

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

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

Router::
::LG              bdpO Execute commands on routers (based on lg.pl) CHRISJ

Schedule::        See also Schedule:: in chapter 4
::Match           adpf Pattern-based crontab-like schedule          TAIY

Silly::
::StringMaths     adpf Do maths with letters and strings            SKINGTON

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

Video::Capture::
::V4l             Mdch Video4linux framegrabber interface           MLEHMANN

Watchdog::
::Service         adpO Look for service in process table            PSHARPE
::HTTPService     adpO Test status of HTTP server                   PSHARPE
::MysqlService    adpO Test status of Mysql server                  PSHARPE

24) Interface Modules to Commercial Software

Name              DSLI Description                                  Info
------------      ---- -------------------------------------------- ----
Resolute::
::RAPS            cd+O Interface to Resolute Software's RAPS        CHGOETZE

AltaVista::
::SearchSDK       cdcf Perl Wrapper for AltaVista SDK functionality JTURNER

Real::
::Encode          i    Interface to Progressive Network's RealAudio KMELTZ

HtDig             RdpO Interface for the HtDig indexing system      JTILLMAN
MQSeries          RdcO IBM's MQSeries messaging product interface   WPMOORE
PQI               cdcO Perl Queuing Interface, to MQSeries, MSMQ    SIMONJ
R3                bdcO Interface to SAP R/3 using RFCSDK            SCHOEN

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

To quote Larry, "The right way to integrate yacc with Perl would be to have
it spit out an XS module, presumably." 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.cpan.org/authors/id/JAKE .

Contacts: JAKE NI-S P5P

6) Approximate Matching Regular Expressions

Add support into the core 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.

4.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
RFC1319    MD2 Message-Digest Algorithm                  Digest::MD2
RFC1321    MD5 Message-Digest Algorithm                  Digest::MD5
RFC1350    Trivial File Transfer Protocol                TFTP, Net::TFTP
RFC1413    Identification Protocol                       Net::Ident
RFC1592    Simple Network Management Protocol            SNMP, 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
RFC1950-1952
           ZLIB, DEFLATE, GZIP                           Compress::Zlib
RFC1960    String Representation of LDAP Search Filters  Net::LDAP::Filter
RFC2045-2049
           MIME - Multipurpose Internet Mail Extensions  MIME::*
RFC2138    Terminal server authentification and accting  RADIUS
RFC2229    Dictionary Server                             Net::Dict
RFC2518    HTTP Extensions for Distributed Authoring     HTTP::DAV

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

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

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

5.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.cpan.org/modules/04pause.html , where you will find a pointer to
a CGI script that lets you edit the database entries yourself.

5.2) Perl Frequently Asked Questions (FAQ)

The FAQ is available on all CPAN sites in the directory doc/FAQs (e.g.,

   * http://www.cpan.org/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://mirror.seas.gwu.edu/pub/rtfm

Europe:

   * ftp://ftp.uni-paderborn.de/pub/FAQ
   * 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
