comp.lang.perl.modules The Perl 5 Module List (Reusable Software) 
Author Message
 comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

Archive-name: perl-faq/module-list
Revision: 2.48
Posting-Frequency: bi-weekly
URL: http://www.*-*-*.com/

The Perl 5 Module List       Revision: 2.48 $Date: 1998/06/26 11:35:59 $
======================


Contents

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

Part 1 - Modules: Creation, Use and Abuse

1)   Perl 5 Module Terminology
2)   Guidelines for Module Creation
3)   Guidelines for Converting Perl 4 Library Scripts into Modules
4)   Guidelines for Reusing Application Code

Part 2 - The Perl 5 Module List

1)   Module Listing Format
2)   Perl Core Modules, Perl Language Extensions and Documentation Tools
3)   Development Support
4)   Operating System Interfaces, 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

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

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

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

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

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

Introduction

This document is a semi-formal list of Perl 5 Modules. The Perl 4
concept of packages has been extended in Perl 5 and a new standardised
form of reusable software component has been defined: the Module.

Perl 5 Modules typically conform to certain guidelines which make them
easier to use, reuse, integrate and extend.

This list will be posted to comp.lang.perl.announce and comp.answers on
a semi-regular basis. It has two key aims:

   - FOR DEVELOPERS: To change duplication of effort into cooperation.
   - FOR USERS: To quickly locate existing software which can be reused.

This list includes the Perl 5 standard modules, other completed
modules, work-in-progress modules and would-be-nice-to-have ideas for
modules. It also includes guidelines for those wishing to create new
modules including how to name them.

Where Are The Modules Kept?

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

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

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

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

For the navigation through the modules collected on the CPAN there are
several entry points: http://www.*-*-*.com/
verbose descriptions for each and every module. If you prefer a simple
clickable list you may prefer
http://www.*-*-*.com/ 're
currently reading is also available on CPAN in a webified version,
http://www.*-*-*.com/
http://www.*-*-*.com/
to a reasonably 'near' CPAN site.

Playing Your Part

Perl is a huge collaborative effort. Everyone who uses perl is
benefiting from the contributions of many hundreds, maybe thousands, of
people. How much time has perl saved you since you started using it?

Do you have any modules you could share with others? For example, you
may have some perl4 scripts from which generally useful, and reusable,
modules could be extracted. There may be many people who would find
your work very useful. Please play your part and contribute to the Perl
community where you can. [ end of sermon :-]

Help save the world! Please submit new entries and updates to us so we
can keep this list up-to-date. Send the new or corrected entry by email

doesn't work). Please do not send code to this address. Instead upload
your module, once registered, to the PAUSE site for forwarding on to
CPAN. See section 2, especially 2.6 and 2.11.

How To Get a More Recent Copy of the List

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

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

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

Editorial Information and Copyright

This document is Copyright (c) 1997 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


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.*-*-*.com/ ). 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.


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


   Does your module pass the 'empty sub-class' test? If you say

   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

   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

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

   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

   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 a category name that includes an underscore like Foo_Corp::*.

   To be portable each component of a module name should be limited to
   11 characters. If it might be used on DOS then try to ensure each is
   unique in the first 8 characters. Nested modules make this easier.

2.6 Have you got it right?

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

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

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



   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.*-*-*.com/

   or upload to one of these sites:

       ftp://pause.kbx.de/incoming (preferred)
       ftp://ftp.cis.ufl.edu/incoming


   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

   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:


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

              Part 2 - The Perl 5 Module List
              ===============================

The remainder of this document is divided up into sections. Each
section deals with a particular topic and lists all known modules
related to that topic.  Modules are only listed in one section so
check all sections that might related to your particular needs.

All the information corresponds to the latest updates we have received.
We don't record the version number or release dates of the listed
Modules. Nor do we record the locations of these Modules. Consult the
contact, try the usual perl CPAN sites or ask in comp.lang.perl.misc.
Please do *not* ask us directly, we simply don't have the time. Sorry.

1) Module Listing Format

Each Module listing is very short. The main goal is to simply publish
the existence of the modules, or ideas for modules, and enough contact
information for you to find out more. Each listing includes some
characters which convey (approximate) basic status information.

For example:

Name           DSLI  Description                                  Info
-------------  ----  -------------------------------------------- -----
Fcntl          Sdcf  Defines fcntl() constants (see File::Lock)   JHI

Where the 'DSLI' characters have the following meanings:

  D - Development Stage  (Note: *NO IMPLIED TIMESCALES*):
    i   - Idea, listed to gain consensus or as a placeholder
    c   - under construction but pre-alpha (not yet released)
    a/b - Alpha/Beta testing
    R   - Released
    M   - Mature (no rigorous definition)
    S   - Standard, supplied with Perl 5

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

  L - Language Used:
    p   - Perl-only, no compiler needed, should be platform independent
    c   - C and perl, a C compiler will be needed
    +   - C++ and perl, a C++ compiler will be needed
    o   - perl and another language other than C or C++

  I - Interface Style
    f   - plain Functions, no references used
    r   - some use of unblessed References or ties
    O   - Object oriented using blessed references and/or inheritance

Where letters are missing they can usually be inferred from the
others.  For example 'i' implies 'id', 'S' implies 'Su'.

The Info column gives a contact reference 'tag'. Lookup this tag in the
"Information / Contact Reference Details" section in Pert 3 of this
document.  If no contact is given always try asking in comp.lang.perl.misc.

Most Modules are nested in categories such as IPC::Open2 and IPC::Open3.
These are shown as 'IPC::' on one line then each module listed below
with a '::' prefix.

Ideas For Adoption

Modules listed as in the 'i' Development Stage with no contact
reference are ideas without an owner. Feel free to 'adopt' these but
please let me know so that we can update the list and thus inform anyone
else who might be interested. Adoption simply means that you either
hope to implement the module one day or would like to cooperate with
anyone else who might be interested in implementing it.

Cooperation

Similarly, if an idea that interests you has been adopted by someone
please contact them so you can share ideas.  Just because an idea has
been adopted does NOT imply that it's going to be implemented. Just
because a module is listed and being implemented does NOT mean it'll
get 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

builtin        adcf  A selection of subs destined for the core    GBARR
constant       adpf  Define compile-time constants                PHOENIX
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

overload       SdpO  Overload perl operators for new data types   ILYAZ
sigtrap        Supf  For trapping an abort and giving a traceback P5P
strict         Supf  Controls averments (similar to pragmas)      P5P
subs           Supf  use subs qw(x y); is short for sub x; sub y; P5P
vars           Supf  predeclare variable names                    P5P

Perl Language Extensions

Alias          bdcf  Convenient access to data/code via aliases   GSAR
Error          adpO  Error/exception handling in an OO-ish way    GBARR
Plthread       i     Multithreading at Perl level (not O/S level) MICB
Protect        bdpf  declare subs private or member               JDUNCAN
Safe           SdcO  Restrict eval'd code to safe subset of ops   MICB

The Perl Compiler

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

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

Source Code Filters

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

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

Documentation Tools:

Pod::
::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{*filter*}                          KJALB
::Lint         cdpO  Lint-style validator for pod                 NEILB
::Man          cdpr  converter to man page                        KJALB
::MIF          adpO  converter to FrameMaker MIF                  JNH
::Parser       bdpO  Base class for parsing pod syntax            BRADAPP
::Pod          cdpr  converter to canonical pod                   KJALB
::RTF          cdpr  converter to RTF                             KJALB
::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

_______________________________________________________________________

3) Development Support

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

ExtUtils::
::DynaGlue     adcr  Methods for generating Perl extension files  DOUGM
::MakeMaker    SupO  Writes Makefiles for extensions              MMML
::Manifest     Supf  Utilities for managing MANIFEST files        MMML
::Typemap      i     xsubpp typemap handling                      WPS
::Embed        Sdpf  Utilities for embedding Perl in C/C++ apps   DOUGM
::F77          RdpO  Facilitate use of fortran from Perl/XS code  KGB

Test::
::Cases        cdpf  Run group of tests, each with a new perl     DOMO
::Harness      Supf  Executes perl-style tests                    ANDK

Devel::
::CallerItem   RupO  'caller()' Object wrapper + useful methods   JACKS
::CoreStack    adpf  generate a stack dump from a core file       ADESC
::Coverage     adpf  Coverage analysis for Perl code              RJRAY
::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
::Peek         adcf  Peek at internal representation of Perl data ILYAZ
::RegExp       adcO  Access perl internal regex functions         ILYAZ
::SmallProf    a     Line-by-line profiler                        ASHTED
::Symdump      RdpO  Perl symbol table access and dumping         ANDK
::TraceFuncs   adpO  Trace funcs by using object destructions     JOEHIL

Usage          bupr  Type and range checking on subroutine args   JACKS

VCS::
::RCS          idpf  Interface layer over RCS (See also Rcs)      RJRAY
::RCE          idcf  Perl layer over RCE C API                    RJRAY

Rcs            adcf  Alternate RCS interface (see VCS::RCS)       CFRETER
ClearCase::*   idcf  Environment for ClearCase revision control   BRADAPP
Include        adpO  Parse C header files for use in XS           GBARR
Make           adpO  Makefile parsing, and 'make' replacement     NI-S

_______________________________________________________________________

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

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

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

Schedule::
::At           Rd    OS independent interface to the at command   JOSERODR

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

Platform Specific Modules

BeOS::
::base         a     Base perl5 functionality for the BeOS        TSPIN

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

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

Mac::Apps::
::Anarchie     RdpO  Interface to Anarchie with AppleEvents       CNANDOR
::Launch       RdpO  Launch/Quit Mac OS Apps by creator ID        CNANDOR
::MacPGP       RdpO  Interface to MacPGP 2.6.3 with AppleEvents   CNANDOR
::PBar         RdpO  AppleEvent module for Progress Bar           CNANDOR

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

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

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

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

VMS::
::Filespec     Sdcf  VMS and Unix file name syntax                CBAIL
::Lock         cnco  Object interface to $ENQ (VMS lock mgr)      BHUGHES
::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

Portable Digital Assistants

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

Hardware Drivers

Device::
::SVGA         c     SVGA Graphic card driver                     SCOTTVR

_______________________________________________________________________

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

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Socket         Smcf  Defines socket-related constants             GNAT
Ptty           adcf  Pseudo terminal interface functions          NI-S

Net::
::ACAP         adpO  Interface to ACAP Protocol (Internet-Draft)  KJOHNSON
::Bind         adpO  Interface to bind daemon files               KJOHNSON
::CDDB         cdpr  Interface to the CDDB (CD Database)          DSTALDER +
::Cmd          cdpO  For command based protocols (FTP, SMTP etc)  GBARR
::DNS          bdpO  Interface to the DNS resolver                MFUHR !
::Dict         i     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          adcO  Generic support for socket usage             SPIDB
::ICAP         adpO  Interface to ICAP Protocol (Internet-Draft)  KJOHNSON
::IMAP         adpO  Interface to IMAP Protocol (RFC2060)         KJOHNSON
::IRC          cdpO  Internet Relay Chat interface                DSHEPP
::Ident        RdpO  Performs ident (rfc1413) lookups             JPC
::Inet         adcO  Internet (IP) socket usage                   SPIDB
::Interface    a     ifconfig(1) implementation                   SRZ
::LDAP         adpO  Interface to LDAP Protocol (RFC1777)         PLDAP
::LDAPapi      Rdcf  Interface to UMICH and Netscape LDAP C API   CDONLEY
::NIS          adcO  Interface to Sun's NIS                       RIK
::NISPlus      adcO  Interface to Sun's NIS+                      RIK
::NNTP         adpO  Client interface to NNTP protocol            GBARR
::Netmask      adpO  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
::Pcap         adcr  An interface for LBL's packet capture lib    PLISTER
::Ping         SupO  TCP and ICMP ping                            RMOSE
::SMTP         adpf  Interface to Simple Mail Transfer Protocol   GBARR
::SNMP         adpO  Interface to SNMP Protocol (RFC1157)         GBARR
::SNPP         cdpO  Client interface to SNPP protocol            GBARR
::SOCKS        cdcf  TCP/IP access through firewalls using SOCKS  SCOOPER
::SSLeay       adcf  Secure Socket Layer (Eric Young's version)   SAMPO
::TCP          adcO  TCP-specific socket usage                    SPIDB
::TFTP         cdpf  Interface to Trivial File Transfer Protocol  GBARR +
::Telnet       adpO  Interact with TELNET port or other TCP ports JROGERS
::Time         adpf  Obtain time from remote machines             GBARR
::UDP          cdcO  UDP-specific socket usage                    SPIDB
::hostent      adpf  A by-name interface for hosts functions      TOMC
::netent       adpf  A by-name interface for networks functions   TOMC
::protoent     adpf  A by-name interface for protocols functions  TOMC
::servent      adpf  A by-name interface for services functions   TOMC
::xAP          adpO  Interface to IMAP,ACAP,ICAP substrate        KJOHNSON

IPC::
::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
::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
::Signal       cdpf  Translate signal names to/from numbers       ROSCH
::SysV         adcr  shared memory, semaphores, messages etc      JACKS

RPC::                Remote Procedure Calls (see also DCE::RPC)
::pServer      RdpO  Interface for building Perl Servers          JWIED
::pClient      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

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

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

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

RADIUS::
::Dictionary   bdpO  Object interface to RADIUS dictionaries      CHRMASTO
::Packet       bdpO  Object interface to RADIUS (rfc2138) packets CHRMASTO

CORBA::
::IOP::IOR     adpO  Decode, munge, and re-encode CORBA IORs      PHILIPA +

_______________________________________________________________________

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

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

Statistics::
::ChiSquare    Rdpf  Chi Square test - how random is your data?   JONO
::Descriptive  RdpO  Descriptive statistical methods              COLINK
::LTU          RdpO  Implements Linear Threshold Units            TOMFA
::ROC          bdpO  ROC curves with nonparametric conf. bounds   HAKESTLER +

Algorithms::Numerical::
::Shuffle      Rd??  Knuth's shuffle algorithm                    ABIGAIL +
::Sample       RD??  Knuth's sample algorithm                     ABIGAIL +

PDL            amcf  Perl Data Language - numeric analysis env    PERLDL

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

Array::
::Heap         cdpf  manipulate array elements as a heap          JMM
::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

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   +

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

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

Set::
::IntRange     RdcO  Set of integers (arbitrary intervals, fast)  STBEY
::IntSpan      adpO  Set of integers newsrc style '1,5-9,11' etc  SWMCD
::IntegerFast  RdcO  Set of integers (algorithmical computations) STBEY
::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

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
::GetDate      adcf  Yacc based free-format date parser in C      TOMC
::Interval     idpO  Lightweight normalised interval data type    KTORP
::Language     adpO  Multi-language date support                  GBARR
::Manip        Rdpf  Manipulate/parse international dates/times   SBECK
::Parse        Rdpf  ASCII Date parser using regexp's             GBARR
::Time         idpO  Lightweight normalised datetime data type    TIMB

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

Calendar::
::CSA          adcO  interface with calenders such as Sun and CDE KJALB
::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        c     Base class for implementing tied arrays      CHIPS
::CPHash       bdpO  Case preserving but case insensitive hash    CJM
::Cache        adpO  In memory size limited LRU cache             CHAMAS !
::DB_Lock      i     Tie DB_File with automatic locking           KWILLIAMS +
::DBI          RdpO  Tie hash to a DBI handle                     LDS   !
::Dir          adpr  Tie hash for reading directories             GBARR
::File         adpr  Tie hash to files in a directory             AMW
::Handle       RdpO  Base class for implementing tied filehandles STBEY
::IxHash       RdpO  Indexed hash (ordered array/hash composite)  GSAR
::Mem          adcO  Bind perl variables to memory addresses      PMQS
::Quick        i     Simple way to create ties                    TIMB
::ShiftSplice  i     Defines shift et al in terms of splice       LWALL
::SubstrHash   SdpO  Very compact hash stored in a string         LWALL
::TextDir      i     ties a hash to a directory of textfiles      KWILLIAMS +
::Watch        bdpO  Watch variables, run code when read/written  LUSOL

Class::
::Eroot        RdpO  Eternal Root - Object persistence            DMR
::Singleton    bdpO  Implementation of a "Singleton" class        ABW   !
::Template     Rdpr  Struct/member template builder               DMR
::TOM          RmpO  Transportable Object Model for perl          JDUNCAN

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

Ref            RdpO  Print, compare, and copy perl structures     MUIR

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

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

Data::
::Check        cdpO  Checks values for various data formats       KENHOLM
::Dumper       RdpO  Convert data structure into perl code        GSAR
::Flow         RdpO  Acquire data based on recipes                ILYAZ
::Locations    RdpO  Store data in "drawers", nest these at will! STBEY

Tree::
::Base         cdpO  Defines a basic binary search tree           MSCHWERN
::Fat          adcO  Embeddable F-Tree Algorithm Suite            JPRIT
::Smart        cdpO  Sorted hash-ish, becomes faster with use     MSCHWERN

_______________________________________________________________________

7) Database Interfaces (see also Data Types)

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
DBI            amcO  Generic Database Interface (see DBD modules) DBIML
DBD::
DBD::
::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
::Fulcrum      cdcO  Fulcrum SearchServer Driver for DB           SHARI
::Informix     amcO  Informix Driver for DBI                      JOHNL
::Informix4    amcO  DBI driver for Informix SE 4.10              GTHYNI
::Ingres       amcO  Ingres Driver for DBI                        HTOUG
::Oracle       amcO  Oracle Driver for DBI                        TIMB
::QBase        amcO  QBase Driver for DBI                         BENLI
::Solid        amcO  Solid Driver for DBI                         TWENRICH
::Sybase       amcO  Sybase Driver for DBI                        MEWP
::XBase        ampO  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

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

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

Datascope      Rdcf  Interface to Datascope RDBMS                 DANMQ
LotusNotes     i     Interface to Lotus Notes C/C++ API           JONO
Msql           RmcO  Mini-SQL database interface                  JWIED
Mysql          RmcO  mysql database interface                     JWIED
ObjStore       Rm+O  ObjectStore OODBMS Interface                 JPRIT
Pg             Rdcf  PostgreSQL SQL database interface            MERGL
Postgres       Rdcr  PostgreSQL interface with Perl5 coding style VKHERA
Sprite         RdpO  Limited SQL interface to flat file databases SHGUN
Xbase          bdpf  Read Xbase files with simple IDX indexes     PRATP
XBase          bdpO  Read/write interface to XBase files          JANPAZ !

Tied Hash File Interfaces:

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

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

Db::
::Ctree        bdcr  Faircom's CTREE+ database interface          REDEN !
::Documentum   bdcf  Documentum EDMS Perl client interface        BRIANSP

DTREE          cdcf  Interface to Faircom DTREE multikey ISAM db  JWAT
Fame           adcO  Interface to FAME database and language      TRIAS
MARC           i     Interface to MARC format (bibliography)      PEM
NetCDF         bmcr  Interface to netCDF API for scientific data  SEMM
Stanza         i     Text format database used by OSF and IBM     JHI

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

_______________________________________________________________________

8) User Interfaces (Character and Graphical)

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

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

Event          adpO  Perl event loop                              GBARR

Major Character User Interface Modules:

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

Emacs::
::Lisp         adcO  Support for perl embedded in GNU Emacs       JTOBEY

Tk X Windows User Interface Modules:

Tk             bmcO  Object oriented version of Tk v4             TKML

See the Tk module list at http://www.*-*-*.com/

Other Major X Windows User Interface Modules:

Gtk            cdcO  binding of the Gtk library used by GIMP      KJALB
Gimp           bdcO  Interface to write plug-ins for The Gimp     MLEHMANN
Sx             Rdcf  Simple Athena widget interface               FMC
Fresco         cd+O  Interface to Fresco (post X11R6 version)     BPETH
Qt             ad+O  Interface to the Qt toolkit                  AWIN

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          adcO  X11 library interface                        KENFOX
::Motif        bdcO  Motif widget set interface                   KENFOX
::Protocol     adpO  Raw interface to X Window System servers     SMCCAM
::Toolkit      adcO  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
::Xforms       bdcO  provides the binding to the xforms library   MARTINB

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
-----------    ----  -------------------------------------------- -----
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::
::Prolog       adpO  An implementation of Prolog                  JACKS
::PGForth      i     Peter Gallasch's Forth implementation        PETERGAL +

SICStus        adcO  Interface to SICStus Prolog Runtime          CBAIL

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

_______________________________________________________________________

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

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

File::
::Attrib       idpO  Get/set file attributes (stat)               TYEMQ
::Basename     Supf  Return basename of a filename                P5P
::CheckTree    Supf  Check file/dir tree against a specification  P5P
::Compare      Supf  Compare file contents quickly                P5P
::Copy         adpf  Copying files or filehandles                 ASHER
::CounterFile  RdpO  Persistent counter class                     GAAS
::Find         Supf  Call func for every item in a directory tree P5P
::Flock        adpf  flock() wrapper.  Auto-create locks          MUIR
::Glob         adpf  Filename globing (ksh style)                 TYEMQ
::Listing      bdpf  Parse directory listings                     GAAS
::Lock         adcf  File locking using flock() and lockf()       JHI
::Path         Supf  File path and name utilities                 P5P
::Slurp        bdpf  Read/write/append files quickly              MUIR
::Sort         adpf  Emulate some functions of sort(1)            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
::MultiTail    adpO  Tail multiple files                          SGMIANO
::lockf        bdcf  Interface to lockf system call               PHENSON
::stat         Supf  A by-name interface for the stat function    TOMC

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

LockFile::           Application-level locking facilities
::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
::Edit         adpf  Assorted handy string editing functions      TOMC
::Parity       adpf  Parity (odd/even/mark/space) handling        WINKO
::Scanf        Rdpf  Implementation of C sscanf function          JHI
::ShellQuote   adpf  Quote string for safe passage through shells ROSCH

Language text related modules

Text::
::Abbrev       Supf  Builds hash of all possible abbreviations    P5P
::Bib          RdpO  Module moved to Text::Refer                  ERYQ
::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
::Format       RdpO  Advanced paragraph formatting                GABOR
::Graphics     RdpO  Layout Helper for non-graphical terminals    SFARRELL +
::Invert       cdpO  Create/query inv. index of text entities     NNEUL
::Metaphone    adpf  Phonetic encoding.  A modern Soundex         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
::Soundex      Supf  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
::Template     bdpO  Expand template text with embedded perl      MJD
::Vpp          bdpO  Versatile text pre-processor                 DDUMONT
::Wrap         Sdpf  Wraps lines to make simple paragraphs        MUIR

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

Text::
::Balanced     Rdpf  Extract balanced-delimiter substrings        DCONWAY
::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::
::EN           i     Namespace for English language modules             +
::PT           bupf  Namespace for Portugese language modules     EGROSS

Lingua::EN::
::Inflect      Rdpf  English singular->plural and "a"->"an"       DCONWAY +
::Cardinal     i     Convert numbers to words                     HIGHTOWE +
::Ordinal      i     Convert numbers to words                     HIGHTOWE +

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

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

Parse::
::ePerl        Rdcr  Embedded Perl (ePerl) parser                 RSE
::Lex          adpO  Generator of lexical analysers               PVERD
::RecDescent   RdpO  Recursive descent parser generator           DCONWAY

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

SGML::
::Element      cdpO  Build a SGML element structure tree          LSTAF
::SPGrove      bd+O  Load SGML, XML, and HTML files               KMACLEOD
SGMLS          RdpO  A Post-Processor for SGMLS and NSGMLS        INGOMACH

RTF::
::Base         i     Classes for Microsoft Rich Text Format       NI-S  +

SQL::
::Statement    adcO  Small SQL parser and engine                  JWIED +

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

FrameMaker::   cdpO  Top level FrameMaker interface               PEASE
::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        adpO  Eliza algorithm encapsulated in an object    JNOLAN

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

_______________________________________________________________________

12) Option, Argument, Parameter and Configuration File Processing

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Getopt::
::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         Supf  Advanced option handling                     JV
::Mixed        Rdpf  Supports both long and short options         CJM
::Regex        ad    Option handling using regular expressions    JARW
::Simple       RdpO  A simplified interface to Getopt::Long       RSAVAGE
::Std          Supf  Implements basic getopt and getopts          P5P
::Tabular      adpr  Table-driven argument parsing with help text GWARD

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

App::                General application development tools
::Config       bdpO  Configuration file mgmt                      ABW

_______________________________________________________________________

13) Internationalization and Locale

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
I18N::
::Collate      Sdpr  Locale based comparisons                     JHI
::LangTags     Rdpf  compare & extract language tags (RFC1766)    SBURKE +
::WideMulti    i     Wide and multibyte character string          JHI

Locale::
::Country      Rdpf  ISO 3166 two letter country codes            NEILB
::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
::gettext      Rdcf  Multilanguage messages                       PVANDRY

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

Modules related to countries or national conventions

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

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

_______________________________________________________________________

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

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

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

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

Crypt::
::CBC          adpO  Cipherblock chaining for Crypt::DES/IDEA     LDS   +
::DES          a     DES encryption (libdes)                      GARY
::IDEA         a     International Data Encryption Algorithm      GARY
::PRSG         a     160 bit LFSR for pseudo random sequences     GARY

Authen::
::ACE          adcO  Interface to Security Dynamics ACE (SecurID) DCARRIGAN +
::Krb5         cdcO  Interface to Kerberos API                    JHORWITZ !
::PAM          adcf  Interface to PAM library                     NIKIP +
::TacacsPlus   adcO  Authentication on tacacs+ server             MSHOYHER

Authcard::
::SDI          RdcO  SecurityDynamics SecurID cards interface     NIGELM +

SSLeay::
::*            cdcO  Interface to SSLeay                          EAYNG

_______________________________________________________________________

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

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

CGI::
::Base         RmpO  Complete HTTPD CGI Interface class           CGIP
::BasePlus     RmpO  Extra CGI::Base methods (incl file-upload)   CGIP
::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
::ErrorWrap    bdpf  Trap warnings and die and convert into HTML  TOMC
::Imagemap     adpO  Imagemap handling for specialized apps       MIKEH
::LogCarp      adpf  Error, log, bug streams, httpd style format  MIKEKING
::MiniSvr      RmpO  Fork CGI app as a per-session mini server    CGIP
::Out          adpf  Buffer CGI output and report errors          MUIR
::Query        adpO  Parse CGI quiry strings                      MPECK +
::Request      RmpO  Parse CGI request and handle form fields     CGIP
::Response     ampO  Response construction for CGI applications   CGIP
::Screen       adpO  Create multi screen CGI-scripts              ULPFR
::Session      cmpO  Maintain session/state information           MGH
::Validate     adpO  Advanced CGI form parser                     ZENIN +

HTML::
::QuickCheck   cdpf  Fast simple validation of HMTL text          YLU
::Base         adpO  Object-oriented way to build pages of HTML   GAND
::Simple       bdpf  Simple functions for generating HTML         TOMC
::Element      ampO  Representation of a HTML parsing tree        LWWWP
::Embperl      bdcf  Embed Perl in HTML                           GRICHTER
::Entities     bmpf  Encode/decode HTML entities                  LWWWP
::Formatter    ampO  Convert HTML to plain text or postscript     LWWWP
::Mason        bdpO  Build sites from modular Perl/HTML blocks    JSWARTZ +
::Parse        ampO  Parse HTML documents                         LWWWP
::ParseForm    i     Parse and handle HTML forms via templates    NMONNET
::Stream       RdpO  HTML output stream                           ERYQ
::Table        bnpO  Write HTML tables via spreadsheet metaphor   STLACY
::TableLayout  bdpO  an extensible OO layout manager              SFARRELL

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

HTTP::Request::
::Form         RdpO  Generates HTTP::Request objects out of forms GBAUER

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

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

LWP::                Libwww-perl-5
::MediaTypes   Rmpf  Media types and mailcap processing           LWWWP
::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
::UserAgent    RmpO  A WWW UserAgent class                        LWWWP

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

Netscape::
::Cache        bdpO  Access Netscape cache files                  SREZIC
::History      bdpO  Class for accessing Netscape history DB      NEILB
::HistoryURL   bdpO  Like a URI::URL, but with visit time         NEILB
::Server       adcO  Perl interface to Netscape httpd API         BSUGARS

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

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

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

For Apache see also http://www.*-*-*.com/

_______________________________________________________________________

16) Server and Daemon Utilities

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

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

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

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

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

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

MailBot        cdpO  Archive server, listserv, auto-responder     RHNELSON

_______________________________________________________________________

17) Archiving, Compression and Conversion

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

Convert::
::BER          adpO  Class for encoding/decoding BER messages     GBARR
::BinHex       cdpO  Convert to/from RFC1741 HQX7 (Mac BinHex)    ERYQ
::EBCDIC       adpf  ASCII to/from EBCDIC                         CXL
::Recode       ?     Mapping functions between character sets     GAAS
::SciEng       i     Convert scientific postfix scale factors     COLINK +
::Translit     MdpO  String conversion among many character sets  GENJISCH
::UU           bdpf  UUencode and UUdecode                        ANDK

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

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

_______________________________________________________________________

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

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

VRML::         RdpO  VRML methods independent of specification    HPALM
::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::
::Simple       idcO  Simple drawing primitives                    NEERI
::Turtle       idp   Turtle graphics package                      NEERI

Image::
::Colorimetry  cdpO  transform colors between colorspaces         JONO
::Grab         RdpO  Grabbing images off the Internet             MAHEX +
::Magick       RdcO  Read, query, transform, and write images     JCRISTY
::Size         Rdpf  Measure size of images in common formats     RJRAY

Chart::
::Base         a     Business charts                              MKRUSE
::Plot         bdcO  Graph two-dimensional data (uses GD.pm)      SMORTON +

T3D            cdpO  Realtime extensible 3D rendering             GJB   +
ThreeD         i     Namespace root for all kinds of 3D modules   ADESC
RenderMan      a     Manipulate RenderMan objects                 GMLEWIS

_______________________________________________________________________

19) Mail and Usenet News

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
Mail::
::Address      adpf  Manipulation of electronic mail addresses    GBARR
::Alias        adpO  Reading/Writing/expanding of mail aliases    GBARR
::Cap          adpO  Parse mailcap files as specified in RFC 1524 GBARR
::Field        RdpO  Base class for handling mail header fields   GBARR
::Folder       adpO  Base-class for mail folder handling          KJOHNSON
::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
::Send         adpO  Simple interface for sending mail            GBARR
::UCEResponder i     Spamfilter                                   CHSTROSS
::Util         adpf  Mail utilities (for by some Mail::* modules) GBARR

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

_______________________________________________________________________

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
Memoize        adpr  Cache results of individual function calls   MJD
Religion       adpr  Control where you go when you die()/warn()   KJALB

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

_______________________________________________________________________

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

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
IO::
::AtomicFile   adpO  Write a file which is updated atomically     ERYQ  +
::Dir          cdpO  Directory handle objects and methods         GBARR
::Expect       cdpO  Expect-like operations on an IO::Handle      GBARR
::File         cdpO  Methods for disk file based i/o handles      GBARR
::Format       adpO  Treat perl formats as objects                SBECK
::Handle       cdpO  Base class for input/output handles          GBARR
::Lines        bdpO  I/O handle to read/write to array of lines   ERYQ  +
::Pipe         cdpO  Methods for pipe handles                     GBARR
::Ptty         adcf  Pseudo terminal interface functions          GBARR
::Pty          cdpO  Methods for pseudo-terminal allocation etc   PEASE
::STREAMS ...

read more »



Tue, 12 Dec 2000 03:00:00 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

2. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

3. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

4. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

5. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

6. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

7. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

8. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

9. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

10. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

11. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

12. comp.lang.perl.modules The Perl 5 Module List (Reusable Software)

 

 
Powered by phpBB® Forum Software