Path: usenet.cis.ufl.edu!purdue!haven.umd.edu!news.umbc.edu!eff!news.duke.edu!news.mathworks.com!newsfeed.internetmci.com!btnet!demon!mail2news.demon.co.uk!ig.co.uk
From: Tim Bunce <
[email protected]>
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc,comp.answers,news.answers
Subject: comp.lang.perl The Perl 5 Module List (Reusable Software)
Supersedes: <perl-faq/
[email protected]>
Followup-To: comp.lang.perl.announce
Date: Mon, 25 Dec 1995 05:00:14 GMT
Organization: Paul Ingram Group, Software Systems, +44 1 483 424424
Lines: 1610
Sender: C-News <
[email protected]>
Approved:
[email protected]
Expires: Mon, 29 Jan 1996 04:00:05 GMT
Message-ID: <perl-faq/
[email protected]>
Reply-To: Tim Bunce <
[email protected]>
Keywords: FAQ Perl Module Software Reuse Development Free
X-NNTP-Posting-Host: ig.co.uk
Posting-Frequency: bi-weekly
X-Mail2News-Path: relay-4.mail.demon.net!post.demon.co.uk!ignite.demon.co.uk!ig.co.uk
Xref: usenet.cis.ufl.edu comp.lang.perl.announce:213 comp.lang.perl.misc:15549 comp.answers:15894 news.answers:61049
Archive-name: perl-faq/module-list
Revision: 2.17 1995/12/08 16:33:42
The Perl 5 Module List Maintained by Tim Bunce <
[email protected]>
====================== $Revision: 2.17 $$Date: 1995/12/08 16:33:42 $
Contents
Introduction
Where Are The Modules Kept?
Playing Your Part
How To Get a More Recent Copy of the List
Editorial Information and Copyright
Part 1 - Modules: Creation, Use and Abuse
1) Perl 5 Module Terminology
2) ! Guidelines for Module Creation
3) Guidelines for Converting Perl 4 Library Scripts into Modules
4) Guidelines for Reusing Application Code
Part 2 - The Perl 5 Module List
1) Module Listing Format
2) Perl Core Modules, Perl Language Extensions and Documentation Tools
3) ! Development Support
4) ! Operating System Interfaces
5) ! Networking, Device Control (modems) and InterProcess Communication
6) ! Data Types and Data Type Utilities
7) ! Database Interfaces
8) User Interfaces
9) Interfaces to / 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 and Compression
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 and Input/Output Stream Utilities
22) Miscellaneous Modules
Part 3 - Big Projects Registry
1) Introduction
2) Items in the Todo File
3) Perl Compiler
4) Multi-threading
5) Object Management Group CORBA & IDL
6) Expand Tied Array Interface
7) Tied File Handles
8) Extend Yacc To Write XS Code
9) Updatable Module List via WWW Forms
Part 4 - Who's Who and What's Where
1) ! Information / Contact Reference Details
2) Perl Frequently Asked Questions (FAQ) Files
3) Other Perl Archive Sites
Key: '+' indicates a new section or item,
'!' indicates a changed section or item (typically new modules).
=======================================================================
Introduction
This document is a semi-formal list of Perl 5 Modules. The Perl 4
concept of packages has been extended in Perl 5 and a new standardised
form of reusable software component has been defined: the Module.
Perl 5 Modules typically conform to certain guidelines which make them
easier to use, reuse, integrate and extend.
This list will be posted to comp.lang.perl.announce and comp.answers on
a semi-regular basis. It has two key aims:
1. FOR DEVELOPERS: To change duplication of effort into cooperation.
2. FOR USERS: To quickly locate existing software which can be reused.
This list includes the Perl 5 standard modules, other completed modules,
work-in-progress modules and would-be-nice-to-have ideas for modules.
It also includes guidelines for those wishing to create new modules
including how to name them.
Where Are The Modules Kept?
A Comprehensive Perl Archive Network (CPAN) of mirrored FTP sites is
being developed. Within the CPAN scheme the modules described in this
list can be found in a modules/ directory below the CPAN root directory.
Try one of these places first:
CPAN master site
ftp://ftp.funet.fi/pub/languages/perl/CPAN/
Africa
ftp://ftp.is.co.za/programming/perl/CPAN/
Asia
ftp://dongpo.math.ncu.edu.tw/perl/CPAN/
ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
Australasia
ftp://coombs.anu.edu.au/pub/perl/
ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/
ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/
Europe
ftp://ftp.arnes.si/software/perl/CPAN/
ftp://ftp.ci.uminho.pt/pub/lang/perl/
ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/
ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
ftp://ftp.funet.fi/pub/languages/perl/CPAN/
ftp://ftp.ibp.fr/pub/perl/CPAN/
ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/
ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/
ftp://ftp.rz.ruhr-uni-bochum.de/pub/programming/languages/perl/CPAN/
ftp://ftp.sunet.se/pub/lang/perl/CPAN/
ftp://ftp.switch.ch/mirror/CPAN/
ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/
North America
ftp://ftp.cis.ufl.edu/pub/perl/CPAN/
ftp://ftp.delphi.com/pub/mirrors/packages/perl/CPAN/
ftp://ftp.sedl.org/pub/mirrors/CPAN/
ftp://ftp.sterling.com/programming/languages/perl/
ftp://ftp.uoknor.edu/mirrors/CPAN/
ftp://uiarchive.cso.uiuc.edu/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.
If you can't find what you want, or wish to check that what you've
found is the latest version, you can contact the person associated with
the module. Contact details are given at the start of Part 4.
I don't record per-module archive addresses because it would take more
time and effort than I can spare (this list would also be much bigger).
Hopefully all Perl modules will find their way into the CPAN in time.
You should find a webified version of this modulelist a few days after
it is posted in the file modules/00modlist.long.html on the CPAN servers.
Playing Your Part
Perl is a huge collaborative effort. Everyone who uses perl is
benefiting from the contributions of many hundreds, maybe thousands, of
people. How much time has perl saved you since you started using it?
Do you have any modules you could share with others? For example, you
may have some perl4 scripts from which generally useful, and reusable,
modules could be extracted. There may be many people who would find
your work very useful. Please play you part and contribute to the Perl
community where you can. [ end of sermon :-]
Help save the world! Please submit new entries and updates to me so I
can keep this list up-to-date. I would prefer changes to be submitted
as context diff's (or just plain diff if your diff does not have a
context diff option) by email to
[email protected]. No tabs please.
Don't forget to upload your module to an archive site. See section 2.9.
How To Get a More Recent Copy of the List
This Module List is posted to comp.lang.perl.announce, 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:
ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/module-list
ftp://ftp.demon.co.uk/pub/perl/db/mod/module-list.txt
ftp://ftp.wpi.edu/perl5/Modules/module_list.txt
(The rtfm.mit.edu site is automatically updated, try that first.)
Editorial Information and Copyright
This document is Copyright (c) 1995 by Tim Bunce. All rights reserved.
Permission to distribute this document, in full or part, via electronic
means (emailed, posted or archived) or printed copy is granted
providing that no charges are involved, reasonable attempt is made to
use the most current version, and all credits and copyright notices are
retained. Requests for other distribution rights, including
incorporation in commercial products, such as books, magazine articles,
or CD-ROMs should be made to
[email protected].
Disclaimer: The content of this document is simply a collection of
information gathered from many sources with little or no checking.
There are NO warranties with regard to this information or its use.
=======================================================================
Part 1 - Modules: Creation, Use and Abuse
=========================================
1) Perl 5 Module Terminology (a larry-terminology-mini-tutorial)
-------------------------
Perl 5 implements a class using a package, but the presence of a
package doesn't imply the presence of a class. A package is just a
namespace. A class is a package that provides subroutines that can be
used as methods. A method is just a subroutine that expects, as its
first argument, either the name of a package (for "static" methods),
or a reference to something (for "virtual" methods).
A module is a file that (by convention) provides a class of the same
name (sans the .pm), plus an import method in that class that can be
called to fetch exported symbols. This module may implement some of
its methods by loading dynamic C or C++ objects, but that should be
totally transparent to the user of the module. Likewise, the module
might set up an AUTOLOAD function to slurp in subroutine definitions on
demand, but this is also transparent. Only the .pm file is required to
exist.
2) Guidelines for Module Creation
------------------------------
2.1 Do similar modules already exist in some form?
If so, please try to reuse the 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) = @_; return bless {}, $class; }
Pass arrays as references so more parameters can be added later
(it's also faster). Convert functions into methods where
appropriate. Split large methods into smaller more flexible ones.
Inherit methods from other modules if appropriate.
Avoid class name tests like: die "Invalid" unless ref $ref eq 'FOO'.
Generally you can delete the "eq 'FOO'" part with no harm at all.
Let the objects look after themselves! Generally, avoid hardwired
class names as far as possible.
Avoid $r->Class::func() where using @ISA=qw(... Class ...) and
$r->func() would work (see perlbot man page for more details).
Use autosplit so little used or newly added functions won't be a
burden to programs which don't use them. Add test functions to
the module after __END__ either using AutoSplit or by saying:
eval join('',<main::DATA>) || die $@ unless caller();
Does your module pass the 'empty sub-class' test? If you say
"@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able
to use SUBCLASS in exactly the same way as YOURCLASS. For example,
does your application still work if you change: $obj = new YOURCLASS;
into: $obj = new SUBCLASS; ?
Avoid keeping any state information in your packages. It makes it
difficult for multiple other packages to use yours. Keep state
information in objects.
Always use -w. Try to "use strict;" (or "use strict qw(...);").
Remember that you can add "no strict qw(...);" to individual blocks
of code which need less strictness. Always use -w. Always use -w!
Follow the guidelines in the perlstyle(1) manual.
2.3 Some simple style guidelines
The perlstyle manual supplied with perl has many helpful points.
Coding style is a matter of personal taste. Many people evolve their
style over several years as they learn what helps them write and
maintain good code. Here's one set of assorted suggestions that
seem to be widely used by experienced developers:
Use underscores to separate words. It is generally easier to read
$var_names_like_this than $VarNamesLikeThis, especially for
non-native speakers of English. It's also a simple rule that works
consistently with VAR_NAMES_LIKE_THIS.
Package/Module names are an exception to this rule. Perl informally
reserves lowercase module names for 'pragma' modules like integer
and strict. Other modules normally begin with a capital letter and
use mixed case with no underscores (need to be short and portable).
You may find it helpful to use letter case to indicate the scope
or nature of a variable. For example:
$ALL_CAPS_HERE constants only (beware clashes with perl vars)
$Some_Caps_Here package-wide global/static
$no_caps_here function scope my() or local() variables
Function and method names seem to work best as all lowercase.
E.g., $obj->as_string().
You can use a leading underscore to indicate that a variable or
function should not be used outside the package that defined it.
2.4 Select what to export.
Do NOT export method names!
Do NOT export anything else by default without a good reason!
Exports pollute the namespace of the module user. If you must
export try to use @EXPORT_OK in preference to @EXPORT and avoid
short or common names to reduce the risk of name clashes.
Generally anything not exported is still accessible from outside the
module using the ModuleName::item_name (or $blessed_ref->method)
syntax. By convention you can use a leading underscore on names to
informally indicate that they are 'internal' and not for public use.
(It is actually possible to get private functions by saying:
my $subref = sub { ... }; &$subref; But there's no way to call that
directly as a method, since a method must have a name in the symbol
table.)
As a general rule, if the module is trying to be object oriented
then export nothing. If it's just a collection of functions then
@EXPORT_OK anything but use @EXPORT with caution.
2.5 Select a name for the module.
This name should be as descriptive, accurate and complete as
possible. Avoid any risk of ambiguity. Always try to use two or
more whole words. Generally the name should reflect what is special
about what the module does rather than how it does it. Please use
nested module names to informally group or categorise a module.
A module should have a very good reason not to have a nested name.
Module names should begin with a capital letter.
Having 57 modules all called Sort will not make life easy for anyone
(though having 23 called Sort::Quick is only marginally better :-).
Imagine someone trying to install your module alongside many others.
If in any doubt ask for suggestions in comp.lang.perl.misc.
If you are developing a suite of related modules/classes it's good
practice to use nested classes with a common prefix as this will
avoid namespace clashes. For example: Xyz::Control, Xyz::View,
Xyz::Model etc. Use the modules in this list as a naming guide.
If adding a new module to a set, follow the original author's
standards for naming modules and the interface to methods in
those modules.
To be portable each component of a module name should be limited to
11 characters. If it might be used on DOS then try to ensure each is
unique in the first 8 characters. Nested modules make this easier.
2.6 Have you got it right?
How do you know that you've made the right decisions? Have you
picked an interface design that will cause problems later? Have
you picked the most appropriate name? Do you have any questions?
The best way to know for sure, and pick up many helpful suggestions,
is to ask someone who knows. Comp.lang.perl.misc is read by just about
all the people who develop modules and it's the best place to ask.
All you need to do is post a short summary of the module, its
purpose and interfaces. A few lines on each of the main methods is
probably enough. (If you post the whole module it might be ignored
by busy people - generally the very people you want to read it!)
Don't worry about posting if you can't say when the module will be
ready - just say so in the message. It might be worth inviting
others to help you, they may be able to complete it for you!
2.7 README and other Additional Files.
It's well known that software developers usually fully document the
software they write. If, however, the world is in urgent need of
your software and there is not enough time to write the full
documentation please at least provide a README file containing:
- A description of the module/package/extension etc.
- A copyright notice - see below.
- Prerequisites - what else you may need to have.
- How to build it - possible changes to Makefile.PL etc.
- How to install it.
- Recent changes in this release, especially incompatibilities
- Changes / enhancements you plan to make in the future.
If the README file seems to be getting too large you may wish to
split out some of the sections into separate files: INSTALL,
Copying, ToDo etc.
2.8 Adding a Copyright Notice.
How you choose to licence your work is a personal decision.
The general mechanism is to assert your Copyright and then make
a declaration of how others may copy/use/modify your work.
Perl, for example, is supplied with two types of licence: The GNU
GPL and The Artistic License (see the files README, Copying and
Artistic). Larry has good reasons for NOT just using the GNU GPL.
My personal recommendation, out of respect for Larry, Perl and the
perl community at large is to simply state something like:
Copyright (c) 1995 Your Name. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
This statement should at least appear in the README file. You may
also wish to include it in a Copying file and your source files.
Remember to include the other words in addition to the Copyright.
2.9 Give the module a version/issue/release number.
To be fully compatible with the Exporter and MakeMaker modules you
should store your module's version number in a non-my package
variable called $VERSION. This should be a valid floating point
number with at least two digits after the decimal (ie hundredths,
e.g, $VERSION = "0.01"). Don't use a "1.3.2" style version.
See Exporter.pm in Perl5.001m or later for details.
It may be handy to add a function or method to retrieve the number.
Use the number in announcements and archive file names when
releasing the module (ModuleName-1.02.tar.Z).
See perldoc ExtUtils::MakeMaker.pm for details.
2.10 How to release and distribute a module.
It's good idea to post an announcement of the availability of your
module (or the module itself if small) to the comp.lang.perl.announce
Usenet newsgroup. This will at least ensure very wide once-off
distribution.
If possible you should place the module into a major ftp archive and
include details of it's location in your announcement.
Some notes about ftp archives: Please use a long descriptive file
name which includes the version number. Most incoming directories
will not be readable/listable, i.e., you won't be able to see your
file after uploading it. Remember to send your email notification
message as soon as possible after uploading else your file may get
deleted automatically. Allow time for the file to be processed
and/or check the file has been processed before announcing its
location.
FTP Archives for Perl Modules:
Follow the instructions and links on
http://franz.ww.tu-berlin.de/modulelist
or upload to one of these sites:
ftp://franz.ww.tu-berlin.de/incoming
ftp://ftp.cis.ufl.edu/incoming
and notify
[email protected].
By using the WWW interface you can ask the Upload Server to mirror
your modules from your ftp or WWW site into your own directory on
CPAN!
Please remember to send me an updated entry for the Module list!
2.11 Take care when changing a released module.
Always strive to remain compatible with previous released versions
(see 2.2 above) Otherwise try to add a mechanism to revert to the
old behaviour if people rely on it. Document incompatible changes.
3) Guidelines for Converting Perl 4 Library Scripts into Modules
-------------------------------------------------------------
3.1 There is no requirement to convert anything.
If it ain't broke, don't fix it! Perl 4 library scripts should
continue to work with no problems. You may need to make some minor
changes (like escaping non-array @'s in double quoted strings) but
there is no need to convert a .pl file into a Module for just that.
3.2 Consider the implications.
All the perl applications which make use of the script will need to
be changed (slightly) if the script is converted into a module. Is
it worth it unless you plan to make other changes at the same time?
3.3 Make the most of the opportunity.
If you are going to convert the script to a module you can use the
opportunity to redesign the interface. The 'Guidelines for Module
Creation' above include many of the issues you should consider.
3.4 The pl2pm utility will get you started.
This utility will read *.pl files (given as parameters) and write
corresponding *.pm files. The pl2pm utilities does the following:
- Adds the standard Module prologue lines
- Converts package specifiers from ' to ::
- Converts die(...) to croak(...)
- Several other minor changes
Being a mechanical process pl2pm is not bullet proof. The converted
code will need careful checking, especially any package statements.
Don't delete the original .pl file till the new .pm one works!
4) Guidelines for Reusing Application Code
---------------------------------------
4.1 Complete applications rarely belong in the Perl Module Library.
4.2 Many applications contain some perl code which could be reused.
Help save the world! Share your code in a form that makes it easy
to reuse.
4.3 Break-out the reusable code into one or more separate module files.
4.4 Take the opportunity to reconsider and redesign the interfaces.
4.5 In some cases the 'application' can then be reduced to a small
fragment of code built on top of the reusable modules. In these cases
the application could invoked as:
perl -e 'use Module::Name; method(@ARGV)' ...
or perl -mModule::Name ... (in perl5.002?)
=======================================================================
Part 2 - The Perl 5 Module List
===============================
The remainder of this document is divided up into sections. Each
section deals with a particular topic and lists all known modules
related to that topic. Modules are only listed in one section so
check all sections that might related to your particular needs.
All the information corresponds to the latest updates I have received.
I don't record the version number or release dates of the listed
Modules. Nor do I record the locations of these Modules. Consult the
contact, try the usual perl archive sites or ask in comp.lang.perl.misc.
Please do *not* ask me directly, I simply don't have the time. Sorry.
1) Module Listing Format
Each Module listing is very short. The main goal is to simply publish
the existence of the modules, or ideas for modules, and enough contact
information for you to find out more. Each listing includes some
characters which convey (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 I can update the list and thus inform anyone
else who might be interested. Adoption simply means that you either
hope to implement the module one day or would like to cooperate with
anyone else who might be interested in implementing it.
Cooperation
Similarly, if an idea that interests you has been adopted by someone
please contact them so you can share ideas. Just because an idea has
been adopted does NOT imply that it's going to be implemented. Just
because a module is listed and being implemented does NOT mean it'll
get finised. Waiting silently in the hope that the Module will appear
one day is unlikely to be fruitful! Offer to help. Cooperate. Pool your
efforts. Go on, try it!
The same applies to modules in all states. Most modules are developed
in limited spare time. If you're interested in a module don't just wait
for it to happen, offer to help.
Module developers should feel free to announce incomplete work early.
If you're not going to be able to spend much time on something then say
so. If you invite cooperation maybe someone will implement it for you!
_______________________________________________________________________
2) Perl Core Modules, Perl Language Extensions and Documentation Tools
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
CORE Suc Internal package for perl native functions
UNIVERSAL SucO Internal universal base-class JACKS
SUPER SucO Internal class to access superclass methods
DynaLoader SucO Dynamic loader for shared libraries
AutoLoader SupO Automatic function loader (using AutoSplit)
SelfLoader adpO Automatic function loader (using __DATA__) JACKS
Exporter SupO Implements default import method for modules
Carp Supf Throw exceptions outside current package
Config Supf Stores details of perl build configuration
English Supf Defines English names for special variables
strict Supf Controls averments (similar to pragmas)
integer Supf Controls float vs. integer arithmetic
less Supf Controls optimisations: 'use less memory;'
subs Supf use subs qw(x y); is short for sub x; sub y;
lib Rupf Simple way to add/delete directories in @INC
sigtrap Supf For trapping an abort and giving a traceback
diagnostics Rdpf For reporting perl diagnostics in full form TOMC
Perl Language Extensions
Safe adcO Restrict eval'd code to safe subset of ops MICB
Plthread i Multithreading at Perl level (not O/S level) MICB
Source Code Filters (requires Perl5.001m or later):
Filter::
::cpp adcf Filters script through C preprocessor PMQS
::exec adcf Filters script through an external command PMQS
::tee adcf Copies to file perl source being compiled PMQS
::call adcf Filters script through perl function PMQS
::decrypt adcf Template for a perl source decryption filter PMQS
Documentation Tools:
Pod::
::Parse adp Common pod parsing code KJALB
_______________________________________________________________________
3) Development Support
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
AutoSplit Supf Splits modules into files for AutoLoader
Benchmark Supf Easy way to time fragments of perl code
FindBin adpf Locate current script bin directory GBARR +
DoWhatIWant i Does what you want without even asking
ExtUtils::
::MakeMaker SupO Writes Makefiles for extensions MMML
::Manifest Supf Utilities for managing MANIFEST files MMML
::DynaGlue i Utilities/glue code for C<->Perl interfaces
::Peek adcf Interface to internal sv_dump and sv_peek ILYAZ
Test::
::Harness Sup Executes perl-style tests
Devel::
::DProf Rdcf Execution profiler DMR
::DumpStack Rupf Dumping of the current function stack JACKS
::CallerItem RupO 'caller()' Object wrapper + useful methods JACKS
::Usage bupr Type and range checking on subroutine args JACKS
::Symdump bdpf Perl symbol table access and dumping ANDK
::TraceFuncs adpO Trace funcs by using object destructions MUIR
VCS::
::RCS idpf Interface layer over RCS functionality RJRAY
::RCE idcf Perl layer over RCE C API RJRAY
_______________________________________________________________________
4) Operating System Interfaces
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
POSIX SupO An interface to most (all?) of POSIX.1
Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI
Ioctl adcf Defines ioctl() constants KJALB
Errno i Constants from <errno.h> EACCES, ENOENT etc JHI
BSD::
::HostIdent i s/gethostname(), s/gethostid() JHI
::Resource Rdcf getrusage(), s/getrlimit(), s/getpriority() JHI +
Sys::
::Hostname Supf Implements a portable hostname function
::Syslog Supf Provides same functionality as BSD syslog
::AlarmCall Rupf Timeout on any sub. Allows nested alarms JACKS
::Fork Rdpf Simple lwall-style fork wrapper MUIR
::Quota adcf Disk quota system functions, local & remote TOMZO
Proc::
::times adpf By-name interface to process times function TOMC
Platform Specific Modules
MSDOS::
::SysCalls adcf MSDOS interface (interrupts, port I/O) DMO
SGI::
::SysCalls cdcf SGI-specific system calls AMOSS
::GL adcr SGI's Iris GL library AMOSS
::FM adcr SGI's Font Management library AMOSS
VMS::
::SysCalls i VMS-specific system calls CBAIL
::Filespec Sdcf VMS and Unix file name syntax CBAIL
NeXTStep::
::NetInfo idcO NeXTStep's NetInfo (like ONC NIS) PGUEN
Mac::
::* i Macintosh specific library modules MCPL
_______________________________________________________________________
5) Networking, Device Control (modems) and InterProcess Communication
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Socket Sucf Defines all socket-related constants JACKS
Ptty adcf Pseudo terminal interface functions NI-S
Net::
::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
::Domain adpf Try to determine TCP domain name of system GBARR !
::Ping Supf Implements TCP/IP ping (currently only echo) PMQS
::IRC i Internet Relay Chat interface MRG
::Telnet i GBARR
::SOCKS i TCP/IP access through firewalls using SOCKS WSCOT
::NIS adcO Interface to Sun's NIS RIK
::NISPlus adcO Interface to Sun's NIS+ RIK
::SSLeay adcf Secure Socket Layer (Eric Young's version) ADESC
Net::
::Gen adcO Generic support for socket usage SPIDB
::Inet adcO Internet (IP) socket usage SPIDB
::TCP adcO TCP-specific socket usage SPIDB
::UDP cdcO UDP-specific socket usage SPIDB
::FTP adpf Interface to File Transfer Protocol GBARR
::SMTP adpf Interface to Simple Mail Transfer Protocol GBARR
::Dnet cdcO DECnet-specific socket usage SPIDB
IPC::
::Open2 Supf
::Open3 Supf
::Chat2 ? Out-of-service during refit! GBARR
::SysV adcr shared memory, semaphores, messages etc JACKS
::Mmap adcf Interface to Unix's mmap() shared memory MICB
RPC::
::ONC i Open Network Computing (Sun) RPC interface PKUTS
::DCE i Distributed Computing Environment (OSF) RPCs
DCE::
::Registry cdcf DCE registry functions TLP
Proxy adpO Transport-independent remote processing MICB
Proxy::
::Tk aucO 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
_______________________________________________________________________
6) Data Types and Data Type Utilities (see also Database Interfaces)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Math::
::BigInt SupO Arbitrary size integer math package MARKB
::BigFloat ?
::BigRat ?
::Complex adpO Complex number data type DNAD
::IEEE i Interface to ANSI/IEEE Std 754-1985 funcs
::Pari adcf Interface to the powerful PARI library ILYAZ
::Mathematica adcO Interface to the powerful Mathematica system ULPFR +
::Matrix adpO Matrix data type (transpose, multiply etc) ULPFR
::Approx adpO Approximate x,y-values by a function ULPFR
::LinearProg idp Linear programming utilities JONO
Array::
::Vec idp Implement array using vec() LWALL
::Substr idp Implement array using substr() LWALL
::Virtual idp Implement array using a file LWALL
Set::
::Scalar adpO Implement Set of scalars (inc references) JHI
::IntegerFast adcO Implement Set of positive integers (fast) STBEY +
Date::
::GetDate adcf Yacc based free-format date parser in C TOMC
::GetDate adpf Byacc based free-format date parser in Perl GBARR
::CTime adpf Updated ctime.pl with mods for timezones GBARR
::DateCalc cdcf Various standards based date calculations STBEY +
::Time idpO Lightweight normalised datetime data type TIMB
::Interval idpO Lightweight normalised interval data type TIMB
Time::
::gmtime adpf A by-name interface for gmtime TOMC
::localtime adpf A by-name interface for localtime TOMC
::Local Supf Implements timelocal() and timegm()
::Time i High resolution timers and time-of-day JHI
::CTime Rdpf Format Times ala ctime(3) with many formats MUIR
::parseDate Rdpf Parses many forms of dates and times MUIR
::JulianDay Rdpf Converts y/m/d into seconds MUIR
::Timezone Rdpf Figures out timezone offsets MUIR
::DaysInMonth Rdpf Returns the number of days in a month MUIR
Tie::
::SubstrHash RdpO Very compact hash stored in a string LWALL
::ShiftSplice i Defines shift et al in terms of splice LWALL
::Mem adcO Bind perl variables to memory addresses PMQS
::File adpr Tie hash to files in a directory AMW
::IxHash adpO Indexed hash (ordered array/hash composite) GSAR
::Quick i Simple way to create ties TIMB
::Watch i Uses Tie::Quick to watch a variable TIMB
TieHash Sup Base class for implementing tied hashes
Class::
::Eroot RdpO Eternal Root - Object persistence DMR
::Template Rdpr Struct/member template builder DMR
Object::
::Info Rupf General info about objects (is-a, ...) JACKS
Ref RdpO Print, compare, and copy perl structures MUIR
Statistics::
::Descriptive RdpO Descriptive statistical methods JKAST
::ChiSquare Rdpf Chi Square test - how random is your data? JONO
Data Type Marshaling (converting to/from strings) and Persistent Storage
FreezeThaw bdpf Convert arbitrary objects to/from strings ILYAZ
Persistent adpO Creates persistent hashrefs or arrayrefs JPC
Storable adcr Persistent data structure mechanism RAM
Marshal::
::Dispatch cdpO Convert arbitrary objects to/from strings MUIR
::Packed cdpO Run-length coded version of Marshal module MUIR
::Eval cdpO Undo serialization with eval MUIR
Data::
::Dumper adpO Convert data structure into perl code GSAR
_______________________________________________________________________
7) Database Interfaces (see also Data Types)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
DBI amcO Generic Database Interface (see DBD modules) DBIML
DBD::
::Oracle amcO Oracle Driver for DBI TIMB
::Ingres cmcO Ingres Driver for DBI TIMB
::Informix adcO Informix Driver for DBI ADESC
::mSQL amcO Msql Driver for DBI ADESC
::DB2 adcO DB2 Driver for DBI MHM
::Sybase idcO Sybase Driver for DBI MEWP
::QBase amcO QBase Driver for DBI BENLI
Oraperl ampf Oraperl emulation interface for DBD::Oracle TIMB
Ingperl cmpf Ingperl emulation interface for DBD::Ingres TIMB
Sybase::
::DBlib bdcO Sybase DBlibrary interface MEWP
::Sybperl bdcf sybperl 1.0xx compatibility module MEWP
::CTlib cdcO Sybase CTlibrary intgerface MEWP
Msql RmcO Mini-SQL, a light weight SQL database ANDK
Pg Rdcf Postgres95 SQL database interface MERGL !
Tied Hash File Interfaces:
NDBM_File Suc Tie to NDBM files
DB_File Suc Tie to DB files PMQS
GDBM_File Suc Tie to GDBM files
SDBM_File Suc Tie to SDBM files
ODBM_File Suc Tie to ODBM files
AnyDBM_File Sup Uses first available *_File module above
DBZ_File adc Tie to dbz files (mainly for news history) IANPX
AsciiDB adp Generic text database parsing MICB
Stanza i Text format database used by OSF and IBM JHI
NetCDF bmcr Interface to netCDF API for scientific data SEMM
DTREE cdcf Interface to Faircom DTREE multikey ISAM db JWAT
Fame adcO Interface to FAME database and language TRIAS +
_______________________________________________________________________
8) User Interfaces (Character and Graphical)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Term::
::Cap Supf Basic termcap: Tgetent, Tputs, Tgoto
::Info adpf Terminfo interface (currently just Tput) KJALB
::Complete Supf Tab word completion using stty raw
::ReadLine adcf GNU Readline, history and completion ILYAZ
::Control idpf Basic curses-type screen controls (gotxy) KJALB
::Read cdcf Terminal reading functions (getkey) KJALB
::Gnuplot adcf Draw vector graphics on terminals etc ILYAZ
::Query Rdpf Intelligent user prompt/response driver AKSTE
Major Character User Interface Modules:
Curses adcO Character screen handling and windowing WPS
Perlmenu Mdpf Curses-based menu and template system SKUNZ
PV bmpO PerlVision curses windowing (OO widgets etc) AGUL
Tk X Windows User Interface Modules:
Tk bmcO Object oriented version of Tk v4 TKML
Tkperldb bmpf Graphical perl debugger interface TKML
Tk::
::FileSelector bmpO A Fileselectorbox for choosing files TKML
Other Major X Windows User Interface Modules:
Sx adc Simple Athena widget interface FMC
Motif cdcf Simple Motif and Xt interface ERICA
Wcl i Interface to the Widget Creation Library TOMH
Fresco cd+O Interface to Fresco (post X11R6 version) BPETH
_______________________________________________________________________
9) Interfaces to / Emulations of Other Programming Languages
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Tcl RdcO Complete access to Tcl MICB
::Tk RdcO Complete access to Tk *via Tcl* MICB
Language::
::Prolog adpO An implementation of Prolog JACKS
SICStus adcO Interface to SICStus Prolog Runtime CBAIL
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
File::
::stat adpf A by-name interface for the stat function TOMC
::Path Supf File path and name utilities
::Basename Supf Return basename of a filename
::CheckTree Supf Check file/dir tree against a specification
::Find Supf Call func for every item in a directory tree
::Lock adcf File locking using flock() and lockf() JHI
::Glob adpf Filename globing (ksh style) TYEMQ
::Attrib idpO Get/set file attributes (stat) TYEMQ
::CounterFile RdpO Persistent counter class GAAS
::Copy adpf Copying files or filehandles ASHER
Filesys::
::dfent adpf By-name interface TOMC
::mntent adpf By-name interface TOMC
::statfs adpf By-name interface TOMC
_______________________________________________________________________
11) String Processing, Language Text Processing, Parsing and Searching
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
String::
::Edit adpf Assorted handy string editing functions TOMC
::Approx Rdpf Approximate string matching and substitution JHI
::Scanf Rdpf Implementation of C sscanf function JHI
::Parity adpf Parity (odd/even/mark/space) handling WINKO
::BitCount adpf Count number of "1" bits in strings WINKO
::MatchMany adpf Build fast code to match many patterns TOMC
Language text related modules
Text::
::Abbrev Supf Builds hash of all possible abbreviations
::ParseWords Supf Parse strings containing shell-style quoting
::Soundex Supf Convert a string to a soundex value
::TeX cdpO TeX typesetting language input parser ILYAZ
::Stem adpf Porter algorithm for stemming English words IANPX
::Tabs Sdpf Expand and contract tabs ala expand(1) MUIR
::Wrap Rdpf Wraps lines to make simple paragraphs MUIR
Search::
::Dict Supf Search a dictionary ordered text file
Other Text:: modules (these should be under String:: but pre-date it)
Text::
::Trie adpf Find common heads and tails from strings ILYAZ
::Parser adpO String parser using patterns and states PATM
SGML::
::Element cdpO Build a SGML element structure tree LSTAF
::SP cd+O Interface to James Clark's Sp SGML parser BARTS
SGMLS RdpO A Post-Processor for SGMLS and NSGMLS DMEGG
Font::
::AFM RdpO Parse Adobe Font Metric files GAAS
Marpa cd+O Context Free Parser JKEGL
Anagram adcf Anangram generator ASHER
_______________________________________________________________________
12) Option, Argument, Parameter and Configuration File Processing
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Getopt::
::Std Supf Implements basic getopt and getopts
::Long Supf Advanced option handling JV
::Gnu adcf GNU form of long option handling WSCOT
ConfigReader cdpO Read directives from configuration file AMW
_______________________________________________________________________
13) Internationalization and Locale
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
I18N::
::Collate Sdpr Locale based comparisons JHI
::WideMulti i Wide and multibyte character string JHI
_______________________________________________________________________
14) Authentication, Security and Encryption
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
DES adcf DES encryption (libdes) EAYNG
Des adcf DES encryption (libdes) MICB
MD5 adcf MD5 message digest algorithm NWINT
SHA adcO NIST SHA message digest algorithm UWEH
Kerberos adcf Kerberos IV authentication MICB
GSS i Generic Security Services API (RFC 1508/9) MSHLD
_______________________________________________________________________
15) World Wide Web, HTML, HTTP, CGI, MIME etc (see Text Processing)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
URI::
::Escape ampf General URI escaping/unescaping functions LWWWP
::URL RmpO Uniform Resource Locator objects LWWWP
CGI::
::Base RmpO Complete HTTPD CGI Interface class CGIP !
::BasePlus RmpO Extra CGI::Base methods (incl file-upload) CGIP !
::Carp cmpf Drop-in Carp replacement for CGI scripts MGH +
::ErrorWrap bdpf Trap warnings and die and convert into HTML TOMC
::ErrorLog cmpO Send errors to error log file LDS +
::Imagemap cmpO Imagemap handling for specialized apps MGH !
::Lite ampO Light-weight interface for fast apps SHGUN +
::MiniSvr RmpO Fork CGI app as a per-session mini server CGIP !
::Request RmpO Parse CGI request and handle form fields CGIP !
::Response ampO Response construction for CGI applications CGIP !
::Session cmpO Maintain session/state information MGH +
::UnixSocket cmcf Runs cgi in background through unix socket AMW
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
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
WWW::
::RobotRules ampO Parse /robots.txt file LWWWP
::Log i Parse Common Log File Format
LWP:: Libwww-perl5
::MediaTypes anpf Media types and mailcap processing LWWWP
::Simple bnpf Simple procedural interface to libwww-perl LWWWP
::UserAgent bnpO A WWW UserAgent class LWWWP
::RobotUA i A UserAgent for robot applications LWWWP
::Protocol::* LWP support for URL schemes (http, file etc) LWWWP
MIME::
::Base64 Rdpf Encode/decode Base 64 (RFC 1521) GAAS
::QuotedPrint Rdpf Encode/decode Quoted-Printable GAAS
::Handler i Base class for MIME content handlers
::Object i Base class for MIME decoded objects
CCI i Common Client Interface for WWW browsers DOUGM
_______________________________________________________________________
16) Server and Daemon Utilities
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Server Hierarchy of generic server classes
Server::Configs::
::BasicConfig RupO Configuration template class for servers JACKS
Server::Initialize::
::Functions Rupf Utility functions for initializing servers JACKS
::Daemon Rupr Intializing a daemon server JACKS
::Pipe Rupr Intializing a server being piped to JACKS
::InetdService Rupr Intializing a server started from inetd JACKS
Server::Server::
::EventDriven RupO Triggers objects on i/o, timers & interrupts JACKS
Server::Echo::
::MailPipe cup A process which accepts piped mail JACKS
::TcpDForking cup TCP daemon which forks clients JACKS
::TcpDMplx cup TCP daemon which multiplexes clients JACKS
::TcpISWFork cup TCP inetd wait process, forks clients JACKS
::TcpISWMplx cup TCP inetd wait process, multiplexes clients JACKS
::TcpISNowait cup TCP inetd nowait process JACKS
::UdpD cup UDP daemon JACKS
::UdpIS cup UDP inetd process JACKS
Server::Inet::
::Functions cdpf Utility functions for Inet socket handling JACKS
::Object cupO Basic Inet object JACKS
::TcpClientObj cupO A TCP client (connected) object JACKS
::TcpMasterObj cupO A TCP master (listening) object JACKS
::UdpObj cupO A UDP object JACKS
Server::FileQueue::
::Functions cupf Functions for handling files and mailboxes JACKS
::Object cupO Basic object JACKS
::DirQueue cupO Files queued in a directory JACKS
::MboxQueue cupO Mail queued in a mail box JACKS
Server::Mail::
::Functions cupf Functions for handling files and mailboxes JACKS
::Object cupO Basic mail object JACKS
_______________________________________________________________________
17) Archiving and Compression
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Compress::
::Zlib adcO Interface to the Info-Zip zlib library PMQS
_______________________________________________________________________
18) Images, Pixmap and Bitmap Manipulation, Drawing and Graphing
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
PixDraw adcO Drawing and manipulating true color images KSB
GD adcO GIF editing/painting/manipulation LDS
PGPLOT Rdof PGPLOT plotting library - scientific graphs KGB
OpenGL adcf Interface to OpenGL drawing/imaging library STANM
_______________________________________________________________________
19) Mail and Usenet News
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Mail::
::Address adpf Manipulation of electronic mail addresses GBARR
::Internet adpO Functions for RFC822 address manipulations GBARR
::MIME adpO Extends Mail::Internet to understand MIME GBARR
::Cap adpO Parse mailcap files as specified in RFC 1524 GBARR
::Send adpO Simple interface for sending mail GBARR
::Mailer adpO Simple mail agent interface (see Mail::Send) GBARR
::Alias adpO Reading/Writing/expanding of mail aliases GBARR
::Util adpf Mail utilities (for by some Mail::* modules) GBARR
::SMTP i Protocol support including expn
::MH adcr MH mail interface MRG
News::
::NNTPClient bdpO Support for clients of NNTP servers RVA
_______________________________________________________________________
20) Control Flow Utilities (callbacks and exceptions etc)
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Religion adpr Control where you go when you die()/warn() KJALB
Callback RdpO Define easy to use function callback objects MUIR
_______________________________________________________________________
21) File Handle and Input/Output Stream Utilities
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
FileHandle SupO File handle objects and methods
Selectable cdpO Event-driven I/O streams MUIR
_______________________________________________________________________
22) Miscellaneous Modules
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
WAIS Rdcf Interface to the freeWAIS-sf libraries ULPFR
Archie Rdpf Archie queries via Prospero ARDP protocol GBOSS
Pcap i An interface for LBL's packet capture lib AMOSS
Nexus cdcO Interface to Nexus (threads/ipc/processes) RDO
SDDF cd+O Interface to Pablo Self Defining Data Format FIS
IXO i IXO alphanumeric pager protocol
Roman Rdpf Convert Roman numbers to and from Arabic OZAWA
Bio::
::* i Utilities for molecular biology SEB
Remedy::
::AR cdcO Interface to Remedy's Action Request API RIK
OLE::
::Word_Basic adc OLE extension for NT Perl WYTAN
=======================================================================
Part 3 - Big Projects Registry
==============================
1) Introduction
This section of the Module List is devoted to listing "Big Projects".
I don't want to define Big (or even Project) here. I hope the items
below speak for themselves. Almost all are just ideas, though some have
been dabbled with.
These are ideas for people with very strong skills and lots of time.
Please talk, and listen, to Larry _before_ starting to do any work on
projects which relate to the core implementation of Perl.
Ask not when these will be implemented but ask how you can help
implement them.
2) Items in the Todo File
The Todo supplied with Perl lists over 60 items in categories ranging
from "Would be nice to have" to "Vague possibilities".
Contacts: LWALL P5P
3) Perl Compiler
Part of the design of Perl 5 was to make it possible to write a
compiler for it. It's a possible master's thesis topic.
Related to this is the ability to save and load a 'flat' byte-code
representation of the compiled perl code. It would be translated back
into Perl's own internal form for speed.
Note that three different prototype Tcl compilers have been announced
in the comp.lang.tcl group! Anyone interested in this should also take
a good look at the Java language from Sun
http://java.sun.com/.
Contacts: LWALL P5P
4) Multi-threading
This is really two projects. True threads (e.g., POSIX) using multiple
independant perl interpreter structures and simple timeslicing of
'tasks' within a single perl interpreter. True threads requires
operating system support or an external thread library, simple
timeslicing does not (and should be portable to all platforms).
Contacts: LWALL MICB P5P
5) ! Object Management Group CORBA & IDL
OMG's (Object Management Group) CORBA (Common Object Request Broker
Architecture) specification provides the standard interface definition
between OMG-compliant objects. IDL (Interface Definition Language) is
the base mechanism for object interaction. Perhaps an extended IDL
compiler which can write XS code would be a good way forward.
Contacts: ASHER, JACKS, DMR
Also:
ftp://omg.org/pub/OMG_IDL/
http://www.cs.cornell.edu/Info/People/maffeis/electra.html
http://www.faslab.com/fresco/HomePage.html (re DISH Tcl+CORBA DII)
ftp://ftp.isi.edu (ORBeline)
ftp://labrea.stanford.edu
ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html
[email protected]
Inter-Language Unification system (ILU). Similar to a CORBA ORB, with some
omissions and extensions. Supports OMG CORBA IDL.
Contacts: DMR
Also:
ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html
6) Expand Tied Array Interface
LEN, PUSH, POP, SHIFT, UNSHIFT and a fallback to SPLICE are needed.
Complicated by very widespread use of arrays within perl internals.
Contacts: P5P LWALL
7) Tied File Handles
It is a long term goal to allow perl file handles to be tied. This will
probably be based on the sfio (Safe Fast IO) library.
Contacts: PMQS TIMB P5P LWALL NI-S
8) + Extend Yacc To Write XS Code
Some version of yacc, like byacc or bison, should be converted to spit
out an OO .xs and .pm implementing a parser.
Contacts: NI-S P5P LWALL
9) + Updatable Module List via WWW Forms
The Module List should be built from some form of database. The
database should be updatable using WWW forms by the owners of the
Modules. The database should store extra information such as links to
the latest version. Andreas Koenig (ANDK) is working on this.
Contacts: ANDK TIMB
=======================================================================
Part 4 - Who's Who and What's Where
===================================
1) Information / Contact Reference Details (in alphabetical order)
Ref Contact Details
----- --------------------------------------------------------------
ADESC Alligator Descartes <
[email protected]>
AGUL Ashish Gulhati <
[email protected]>
AKSTE Alan K. Stebbens <
[email protected]>
+ ALSCH Alan Scheinine <
[email protected]>
AMOSS Amos Shapira <
[email protected]>
AMW Andrew Wilcox <
[email protected]>
ANDK Andreas Koenig <
[email protected]>
ANDYD Andy Dougherty <
[email protected]>
ASHER Aaron Sherman <
[email protected]>
BARTS Bart Schuller <
[email protected]>
BBUM Bill Bumgarner <
[email protected]>
BENLI Ben Lindstrom <
[email protected]>
+ BJEPS Brian Jepson <
[email protected]>
BMIDD William J. Middleton <
[email protected]>
BPETH Bill Petheram <
[email protected]>
CBAIL Charles Bailey <
[email protected]>
CGIP The CGI-Perl Developers mailing list
Mail to
[email protected] with body "subscribe"
CHIPS Chip Salzenberg <
[email protected]>
DBIML The DBI mailing lists: subscribe via
http://www.fugue.com/dbi
or mail to
[email protected] and ask (the human, Ted Lemon) to
subscribe you to one or more of dbi-announce, dbi-users, dbi-dev.
DMEGG David Megginson <
[email protected]>
DMO Darryl Okahata <
[email protected]>
DMR Dean Roehrich <
[email protected]>
DNAD Dave Nadler <
[email protected]>
DOUGM Doug MacEachern <
[email protected]>
EAYNG Eric Young <
[email protected]>
ERICA Eric Arnold <
[email protected]>
+ ERYQ Eryq <
[email protected]>
FIS Frank Ian Smith <
[email protected]>
FMC Frederic Chauveau <
[email protected]>
+ FSG Felix Sebastian Gallo <
[email protected]>
GAAS Gisle Aas <
[email protected]>
GAND Greg Anderson <
[email protected]>
GBARR Graham Barr <
[email protected]>
GBOSS Greg Bossert <
[email protected]>
GREGG Gregg Helt <
[email protected]>
GSAR Gurusamy Sarathy <
[email protected]>
GSM Joe Marzot <
[email protected]>
GSPAF Gene Spafford <
[email protected]>
GUYDX Guy Decoux <
[email protected]>
IANPX Ian Phillipps <
[email protected]>
ILYAZ Ilya Zakharevich <
[email protected]>
JACKS Jack Shirazi <
[email protected]>
+ JAMCC Jamie McCarthy <
[email protected]>
JHI Jarkko Hietaniemi <
[email protected]>
JKAST Jason Kastner <
[email protected]>
JKEGL Jeffrey Kegler <
[email protected]>
JONO Jon Orwant <
[email protected]>
+ JONG Jong Park <
[email protected]>
JPC Jan-Pieter Cornet <
[email protected]>
JV Johan Vromans <
[email protected]>
JWAT John Watson <
[email protected]>
KGB Karl Glazebrook <
[email protected]>
KJALB Kenneth Albanowski <
[email protected]>
KSB Simon Berg <
[email protected]>
LDS Lincoln D. Stein <
[email protected]>
LSTAF Lennart Staflin <
[email protected]>
LWALL Larry Wall. Author of Perl. Busy man. <
[email protected]>
LWWWP The libwww-perl mailing list
Mail to
[email protected] with body "subscribe"
MARCP Marc Paquette <
[email protected]>
MARKB Mark Biggar <
[email protected]>
MCPL The MacPerl mailing list
Mail to
[email protected] with body "subscribe"
MERGL Edmund Mergl <
[email protected]>
MEWP Michael Peppler <
[email protected]>
MGH Marc Hedlund <
[email protected]>
MHM Mike Moran <
[email protected]>
MICB Malcolm Beattie <
[email protected]>
MMML The MakeMaker mailing list
Mail to
[email protected] with body "subscribe"
MRG Matthew Green <
[email protected]>
MSHLD Michael Shields <
[email protected]>
MUIR David Muir Sharnoff <
[email protected]>
NI-S Nick Ing-Simmons <
[email protected]>
NWINT Neil Winton <
[email protected]>
OZAWA OZAWA Sakuro <
[email protected]>
P5P The Perl5 Porters Mailing List
Mail to
[email protected] with body "subscribe"
PATM Pat Martin <
[email protected]>
+ PEASE Mark Pease <
[email protected]>
PGUEN Philip Guenther <
[email protected]>
PKUTS Peter Kutschera <
[email protected]>
PMQS Paul Marquess <
[email protected]>
PRATP Pratap Pereira <
[email protected]>
RAM Raphael Manfredi <
[email protected]>
RDO Robert Olson <
[email protected]>
RIK Rik Harris <
[email protected]>
RJRAY Randy J Ray <
[email protected]>
RVA Rodger Anderson <
[email protected]>
SBECK Sullivan Beck <
[email protected]>
+ STBEY Steffen Beyer <
[email protected]>
SEB Steven Brenner <
[email protected]>
SEMM Steve Emmerson <
[email protected]>
SGEL Sergio Gelato <
[email protected]>
SHGUN Shishir Gundavaram <
[email protected]>
SKUNZ Steven L. Kunz <
[email protected]>
SPIDB Spider Boardman <
[email protected]>
STANM Stan Melax <
[email protected]>
+ STBEY Steffen Beyer <
[email protected]>
TIMB Tim Bunce <
[email protected]>
TKML The Tk Perl Mailing list
Mail to
[email protected] with body "subscribe ptk <your-address>"
TLP Travis L Priest <
[email protected]>
TOMC Tom Christiansen <
[email protected]>
TOMH Tom Horsley <
[email protected]>
TOMZO Tom Zoerner <
[email protected]>
+ TRIAS Fernando Trias <
[email protected]>
TYEMQ Tye McQueen <
[email protected]>
ULPFR Ulrich Pfeifer <
[email protected]>
UWEH Uwe Hollerbach <
[email protected]>
WINKO Winfried Koenig <
[email protected]>
WPS William Setzer <
[email protected]>
WSCOT Wayne Scott <
[email protected]>
WYTAN Wei-Yuen Tan <
[email protected]>
YLU Luke Y. Lu <
[email protected]>
YVESP Yves Paindaveine <
[email protected]>
2) Perl Frequently Asked Questions (FAQ) and Other Resources
Perl Meta-FAQ
http://www.khoros.unm.edu/staff/neilb/perl/metaFAQ
http://www.cse.unsw.edu.au/perl/metaFAQ.html
http://web.nexor.co.uk/perl/Meta-FAQ.txt
Perl FAQ
http://mox.perl.com/perl/faq
ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/
ftp://ftp.uu.net/usenet/news.answers/perl-faq/
ftp://ftp.cis.ufl.edu/pub/perl/doc/FAQ
ftp://ftp.khoros.unm.edu/pub/perl/faq.gz
ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/perl-faq/
ftp://ftp.funet.fi/pub/languages/perl/doc/faq
ftp://src.doc.ic.ac.uk/packages/perl/FAQ
3) Other Perl Archive Sites
ftp://ftp.delphi.com/pub/mirrors/packages/ftp.perl.com/
ftp://ftp.delphi.com/pub/mirrors/packages/perl/
ftp://ftp.cdrom.com/pub/perl
ftp://coombs.anu.edu.au/pub/perl
ftp://ftp.cbi.tamucc.edu/pub/duff/Perl
ftp://ftp.demon.co.uk/pub/perl
ftp://ftp.khoros.unm.edu/pub/perl
ftp://ftp.metronet.com/pub/perl
ftp://ftp.uu.net/languages/perl
ftp://ftp.wpi.edu/perl5
ftp://ftp.zrz.tu-berlin.de/pub/unix/perl
ftp://perl.com/pub/perl
ftp://src.doc.ic.ac.uk/packages/perl
ftp://src.doc.ic.ac.uk/packages/perl5
ftp://sungear.mame.mu.oz.au/pub/perl
End.