Archive-name: perl-faq/module-list Revision: 2.49 Posting-Frequency: bi-weekly URL: http://www.perl.com/CPAN/modules/00modlist.long.html The Perl 5 Module List Revision: 2.49 $Date: 1998/08/15 08:53:26 $ ====================== Maintained by Tim Bunce and Andreas KЖnig <[email protected]> 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 Armenia ftp://sunsite.aua.am/pub/CPAN/ 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/ ftp://mirror.nucba.ac.jp/mirror/Perl/ 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://ftp.wownet.net/pub2/PERL/ Thailand ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/ ftp://ftp.nectec.or.th/pub/mirrors/CPAN/ Australasia Australia ftp://cpan.topend.com.au/pub/CPAN/ ftp://ftp.sage-au.org.au/pub/compilers/perl/CPAN/ ftp://mirror.aarnet.edu.au/pub/perl/CPAN/ New Zealand ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ ftp://sunsite.net.nz/pub/languages/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/ Bulgaria ftp://ftp.ntrl.net/pub/mirrors/CPAN/ Croatia ftp://ftp.linux.hr/pub/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/CPAN/ Germany ftp://ftp.archive.de.uu.net/pub/CPAN/ ftp://ftp.gmd.de/packages/CPAN/ ftp://ftp.gwdg.de/pub/languages/perl/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/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.uniRoma2.it/CPAN/ ftp://ftp.flashnet.it/pub/CPAN/ Netherlands ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/ ftp://ftp.EU.net/packages/cpan/ Norway ftp://ftp.uit.no/pub/languages/perl/cpan/ ftp://sunsite.uio.no/pub/languages/perl/CPAN/ Poland ftp://ftp.man.szczecin.pl/pub/perl/CPAN/ ftp://ftp.man.torun.pl/pub/CPAN/ 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.ua.pt/pub/CPAN/ Romania ftp://ftp.dntis.ro/pub/mirrors/perl-cpan/ ftp://ftp.dnttm.ro/pub/CPAN/ Russia ftp://cpan.npi.msu.su/CPAN/ ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ Slovakia ftp://ftp.entry.sk/pub/languages/perl/CPAN/ Slovenia ftp://ftp.arnes.si/software/perl/CPAN/ Spain ftp://ftp.etse.urv.es/pub/perl/ ftp://ftp.rediris.es/mirror/CPAN/ Sweden ftp://ftp.sunet.se/pub/lang/perl/CPAN/ Switzerland ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ Turkeya ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/ United Kingdom ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/ ftp://ftp.flirble.org/pub/languages/perl/CPAN/ ftp://ftp.plig.org/pub/CPAN/ ftp://sunsite.doc.ic.ac.uk/packages/CPAN/ ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/ North America Canada ftp://ftp.crc.ca/pub/packages/perl/CPAN/ ftp://theory.uwinnipeg.ca/pub/CPAN/ United States 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.cise.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.uwsg.indiana.edu/pub/perl/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. Playing Your Part Perl is a huge collaborative effort. Everyone who uses perl is benefiting from the contributions of many hundreds, maybe thousands, of people. How much time has perl saved you since you started using it? Do you have any modules you could share with others? For example, you may have some perl4 scripts from which generally useful, and reusable, modules could be extracted. There may be many people who would find your work very useful. Please play your part and contribute to the Perl community where you can. [ end of sermon :-] Help save the world! Please submit new entries and updates to us so we can keep this list up-to-date. Send the new or corrected entry by email to [email protected] (or [email protected] in case the above doesn't work). Please do not send code to this address. Instead upload your module, once registered, to the PAUSE site for forwarding on to CPAN. See section 2, especially 2.6 and 2.11. How To Get a More Recent Copy of the List This Module List is posted to comp.lang.perl.modules, comp.answers and news.answers bi-weekly with a long expiry time (over a month). The first place to look for a more recent copy is therefore your own Usenet spool area. You should be able to get a copy from one of these places: 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 articles, or CD-ROMs should be made to [email protected] and [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 ------------------------- Perl 5 implements a class using a package, but the presence of a package doesn't imply the presence of a class. A package is just a namespace. A class is a package that provides subroutines that can be used as methods. A method is just a subroutine that expects, as its first argument, either the name of a package (for "static" methods), or a reference to something (for "virtual" methods). A module is a file that (by convention) provides a class of the same name (sans the .pm), plus an import method in that class that can be called to fetch exported symbols. This module may implement some of its methods by loading dynamic C or C++ objects, but that should be totally transparent to the user of the module. Likewise, the module might set up an AUTOLOAD function to slurp in subroutine definitions on demand, but this is also transparent. Only the .pm file is required to exist. 2) Guidelines for Module Creation ------------------------------ 2.1 Do similar modules already exist in some form? If so, please try to reuse the existing modules either in whole or by inheriting useful features into a new class. If this is not practical try to get together with the module authors to work on extending or enhancing the functionality of the existing modules. A perfect example is the plethora of packages in perl4 for dealing with command line options. If you are writing a module to expand an already existing set of modules, please coordinate with the author of the package. It helps if you follow the same naming scheme and module interaction scheme as the original author. 2.2 Try to design the new module to be easy to extend and reuse. Use blessed references. Use the two argument form of bless to bless into the class name given as the first parameter of the constructor, e.g.: sub new { my $class = shift; return bless {}, $class; } or even this if you'd like it to be used as either a static or a virtual method. sub new { my $self = shift; my $class = ref($self) || $self; return bless {}, $class; } Pass arrays as references so more parameters can be added later (it's also faster). Convert functions into methods where appropriate. Split large methods into smaller more flexible ones. Inherit methods from other modules if appropriate. Avoid class name tests like: die "Invalid" unless ref $ref eq 'FOO'. Generally you can delete the "eq 'FOO'" part with no harm at all. Let the objects look after themselves! If it's vital then you can use the UNIVERSAL methods isa and can. Generally, avoid hardwired class names as far as possible. Avoid $r->Class::func() where using @ISA=qw(... Class ...) and $r->func() would work (see perlbot man page for more details). Use autosplit or the SelfLoader module so little used or newly added functions won't be a burden to programs which don't use them. Add test functions to the module after __END__ either using autosplit or by saying: eval join('',<main::DATA>) || die $@ unless caller(); Does your module pass the 'empty sub-class' test? If you say "@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able to use SUBCLASS in exactly the same way as YOURCLASS. For example, does your application still work if you change: $obj = new YOURCLASS; into: $obj = new SUBCLASS; ? Avoid keeping any state information in your packages. It makes it difficult for multiple other packages to use yours. Keep state information in objects. Always use -w. Try to "use strict;" (or "use strict qw(...);"). Remember that you can add "no strict qw(...);" to individual blocks of code which need less strictness. Always use -w. Always use -w! Follow the guidelines in the perlstyle(1) manual. 2.3 Some simple style guidelines The perlstyle manual supplied with perl has many helpful points. Coding style is a matter of personal taste. Many people evolve their style over several years as they learn what helps them write and maintain good code. Here's one set of assorted suggestions that seem to be widely used by experienced developers: Use underscores to separate words. It is generally easier to read $var_names_like_this than $VarNamesLikeThis, especially for non-native speakers of English. It's also a simple rule that works consistently with VAR_NAMES_LIKE_THIS. Package/Module names are an exception to this rule. Perl informally reserves lowercase module names for 'pragma' modules like integer and strict. Other modules normally begin with a capital letter and use mixed case with no underscores (need to be short and portable). You may find it helpful to use letter case to indicate the scope or nature of a variable. For example: $ALL_CAPS_HERE constants only (beware clashes with perl vars) $Some_Caps_Here package-wide global/static $no_caps_here function scope my() or local() variables Function and method names seem to work best as all lowercase. E.g., $obj->as_string(). You can use a leading underscore to indicate that a variable or function should not be used outside the package that defined it. For method calls use either $foo = new Foo $arg1, $arg2; # no parentheses $foo = Foo->new($arg1, $arg2); but avoid the ambiguous form $foo = new Foo($arg1, $arg2); # Foo() looks like function call It can be very helpful if the names of the classes that your module uses can be specified as parameters. Consider: $dog_class = $args{dog_class} || 'Dog'; $spot = $dog_class->new(...); This allows the user of your module to specify an alternative class (typically a subclass of the one you would normally have used). On how to report constructor failure, Larry said: I tend to see it as exceptional enough that I'll throw a real Perl exception (die) if I can't construct an object. This has a couple of advantages right off the bat. First, you don't have to check the return value of every constructor. Just say "$fido = new Doggie;" and presume it succeeded. This leads to clearer code in most cases. Second, if it does fail, you get a better diagnostic than just the undefinedness of the return value. In fact, the exception it throws may be quite rich in "stacked" error messages, if it's rethrowing an exception caught further in. And you can always catch the exception if it does happen using eval {}. If, on the other hand, you expect your constructor to fail a goodly part of the time, then you shouldn't use exceptions, but you should document the interface so that people will know to check the return value. You don't need to use defined(), since a constructor would only return a true reference or a false undef. So good Perl style for checking a return value would simply say $conn = new Connection $addr or die "Couldn't create Connection"; In general, make as many things meaningful in a Boolean context as you can. This leads to straightforward code. Never write anything like if (do_your_thing() == OK) in Perl. That's just asking for logic errors and domain errors. Just write if (do_your_thing()) Perl is designed to help you eschew obfuscation, if that's your thing. 2.4 Select what to export. Do NOT export method names! Do NOT export anything else by default without a good reason! Exports pollute the namespace of the module user. If you must export try to use @EXPORT_OK in preference to @EXPORT and avoid short or common names to reduce the risk of name clashes. Generally anything not exported is still accessible from outside the module using the ModuleName::item_name (or $blessed_ref->method) syntax. By convention you can use a leading underscore on names to informally indicate that they are 'internal' and not for public use. (It is actually possible to get private functions by saying: my $subref = sub { ... }; &$subref; But there's no way to call that directly as a method, since a method must have a name in the symbol table.) As a general rule, if the module is trying to be object oriented then export nothing. If it's just a collection of functions then @EXPORT_OK anything but use @EXPORT with caution. 2.5 Select a name for the module. This name should be as descriptive, accurate and complete as possible. Avoid any risk of ambiguity. Always try to use two or more whole words. Generally the name should reflect what is special about what the module does rather than how it does it. Having 57 modules all called Sort will not make life easy for anyone (though having 23 called Sort::Quick is only marginally better :-). Imagine someone trying to install your module alongside many others. If in any doubt ask for suggestions in comp.lang.perl.modules or [email protected]. Please use a nested module name to informally group or categorise a module, e.g., placing a sorting module into a Sort:: category. A module should have a very good reason not to have a nested name. Please avoid using more than one level of nesting for module names (packages or classes within modules can, of course, use any number). Module names should begin with a capital letter. Lowercase names are reserved for special modules such as pragmas (e.g., lib and strict). Note that module names are not related to class hierarchies. A module name Foo::Bar does not in any way imply that Foo::Bar inherits from Foo. Nested names are simply used to provide some useful categorisation for humans. The same is generally true for all package names. Since the CPAN is huge and growing daily, it's essential that module authors choose names which lend themselves to browsing. That means minimizing acronyms, cute names, and jargon. Also, don't make up a new top level category unless you have a good reason; please choose an already-existing category when possible. Send mail to [email protected] before you upload, so we can help you select a name. If you insist on a name that we consider inappropriate, we won't prevent you from uploading your module -- but it'll remain in your "author" directory and won't be directly visible from CPAN/modules/by-module. We appreciate the efforts of the contributors who have helped make the CPAN the world's largest reusable code repository. Please help us enhance it by working with us to choose the best name possible. If you are developing a suite of related modules/classes it's good practice to use nested classes with a common prefix as this will avoid namespace clashes. For example: Xyz::Control, Xyz::View, Xyz::Model etc. Use the modules in this list as a naming guide. If adding a new module to a set, follow the original author's standards for naming modules and the interface to methods in those modules. If developing modules for private internal or project specific use, that will never be released to the public, then you should ensure that their names will not clash with any future public module. You can do this either by using the reserved Local::* category or by using a category name that includes an underscore like Foo_Corp::*. To be portable each component of a module name should be limited to 11 characters. If it might be used on DOS then try to ensure each is unique in the first 8 characters. Nested modules make this easier. 2.6 Have you got it right? How do you know that you've made the right decisions? Have you picked an interface design that will cause problems later? Have you picked the most appropriate name? Do you have any questions? The best way to know for sure, and pick up many helpful suggestions, is to ask someone who knows. The comp.lang.perl.modules Usenet newsgroup is read by just about all the people who develop modules and it's generally the best place to ask first. If you need more help then try [email protected]. All you need to do is post a short summary of the module, its purpose and interfaces. A few lines on each of the main methods is probably enough. (If you post the whole module it might be ignored by busy people - generally the very people you want to read it!) Don't worry about posting if you can't say when the module will be ready - just say so in the message. It might be worth inviting others to help you, they may be able to complete it for you! 2.7 README and other Additional Files. It's well known that software developers usually fully document the software they write. If, however, the world is in urgent need of your software and there is not enough time to write the full documentation please at least provide a README file containing: - A description of the module/package/extension etc. - A copyright notice - see below. - Prerequisites - what else you may need to have. - How to build it - possible changes to Makefile.PL etc. - How to install it. - Recent changes in this release, especially incompatibilities - Changes / enhancements you plan to make in the future. If the README file seems to be getting too large you may wish to split out some of the sections into separate files: INSTALL, Copying, ToDo etc. 2.8 Adding a Copyright Notice. How you choose to licence your work is a personal decision. The general mechanism is to assert your Copyright and then make a declaration of how others may copy/use/modify your work. Perl, for example, is supplied with two types of licence: The GNU GPL and The Artistic License (see the files README, Copying and Artistic). Larry has good reasons for NOT just using the GNU GPL. My personal recommendation, out of respect for Larry, Perl and the perl community at large is to simply state something like: Copyright (c) 1997 Your Name. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This statement should at least appear in the README file. You may also wish to include it in a Copying file and your source files. Remember to include the other words in addition to the Copyright. 2.9 Give the module a version/issue/release number. To be fully compatible with the Exporter and MakeMaker modules you should store your module's version number in a non-my package variable called $VERSION. This should be a valid floating point number with at least two digits after the decimal (ie hundredths, e.g, $VERSION = "0.01"). See Exporter.pm for details. Don't use a "1.3.2" style version directly. If you use RCS or a similar system which supports multilevel versions/branches you can use this (but put it all on one line for MakeMaker VERSION_FROM): $VERSION = do { my @r=(q$Revision: 2.99 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r }; It may be handy to add a function or method to retrieve the number. Use the number in announcements and archive file names when releasing the module (ModuleName-1.02.tar.gz). See perldoc ExtUtils::MakeMaker.pm for details. 2.10 Listing Prerequisites in a Bundle module If your module needs some others that are available on CPAN, you might consider creating a 'bundle' module that lists all the prerequisites in a standardized way. Automatic installation software such as the CPAN.pm module can take advantage of such a listing and enable your users to install all prerequisites and your own module with one single command. See the CPAN.pm module for details. 2.11 How to release and distribute a module. By far the best way to release modules is to register yourself with the Perl Authors Upload Server (PAUSE). By registering with PAUSE you will be able to easily upload (or mirror) your modules to the PAUSE server from where they will be mirrored to CPAN sites across the planet. It's good idea to post an announcement of the availability of your module to the comp.lang.perl.announce Usenet newsgroup. This will at least ensure very wide once-off distribution. If not using PAUSE you should place the module into a major ftp archive and include details of it's location in your announcement. Some notes about ftp archives: Please use a long descriptive file name which includes the version number. Most incoming directories will not be readable/listable, i.e., you won't be able to see your file after uploading it. Remember to send your email notification message as soon as possible after uploading else your file may get deleted automatically. Allow time for the file to be processed and/or check the file has been processed before announcing its location. FTP Archives for Perl Modules: Follow the instructions and links on or upload to one of these sites: and notify [email protected]. By using the PAUSE WWW interface you can ask the Upload Server to mirror your modules from your ftp or WWW site into your own directory on CPAN. Please remember to send us an updated entry for the Module list! 2.12 Take care when changing a released module. Always strive to remain compatible with previous released versions (see 2.2 above) Otherwise try to add a mechanism to revert to the old behaviour if people rely on it. Document incompatible changes. 3) Guidelines for Converting Perl 4 Library Scripts into Modules ------------------------------------------------------------- 3.1 There is no requirement to convert anything. If it ain't broke, don't fix it! Perl 4 library scripts should continue to work with no problems. You may need to make some minor changes (like escaping non-array @'s in double quoted strings) but there is no need to convert a .pl file into a Module for just that. See perltrap.pod for details of all known perl4-to-perl5 issues. 3.2 Consider the implications. All the perl applications which make use of the script will need to be changed (slightly) if the script is converted into a module. Is it worth it unless you plan to make other changes at the same time? 3.3 Make the most of the opportunity. If you are going to convert the script to a module you can use the opportunity to redesign the interface. The 'Guidelines for Module Creation' above include many of the issues you should consider. 3.4 The pl2pm utility will get you started. This utility will read *.pl files (given as parameters) and write corresponding *.pm files. The pl2pm utilities does the following: - Adds the standard Module prologue lines - Converts package specifiers from ' to :: - Converts die(...) to croak(...) - Several other minor changes Being a mechanical process pl2pm is not bullet proof. The converted code will need careful checking, especially any package statements. Don't delete the original .pl file till the new .pm one works! 4) Guidelines for Reusing Application Code --------------------------------------- 4.1 Complete applications rarely belong in the Perl Module Library. 4.2 Many applications contain some perl code which could be reused. Help save the world! Share your code in a form that makes it easy to reuse. 4.3 Break-out the reusable code into one or more separate module files. 4.4 Take the opportunity to reconsider and redesign the interfaces. 4.5 In some cases the 'application' can then be reduced to a small fragment of code built on top of the reusable modules. In these cases the application could invoked as: perl -MModule::Name -e 'func(@ARGV)' ======================================================================= Part 2 - The Perl 5 Module List =============================== The remainder of this document is divided up into sections. Each section deals with a particular topic and lists all known modules related to that topic. Modules are only listed in one section so check all sections that might related to your particular needs. All the information corresponds to the latest updates we have received. We don't record the version number or release dates of the listed Modules. Nor do we record the locations of these Modules. Consult the contact, try the usual perl CPAN sites or ask in comp.lang.perl.modules. Please do *not* ask us directly, we simply don't have the time. Sorry. 1) Module Listing Format Each Module listing is very short. The main goal is to simply publish the existence of the modules, or ideas for modules, and enough contact information for you to find out more. Each listing includes some characters which convey (approximate) basic status information. For example: Name DSLI Description Info ------------- ---- -------------------------------------------- ----- Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI Where the 'DSLI' characters have the following meanings: D - Development Stage (Note: *NO IMPLIED TIMESCALES*): 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.modules n - None known, try comp.lang.perl.modules L - Language Used: p - Perl-only, no compiler needed, should be platform independent c - C and perl, a C compiler will be needed h - Hybrid, written in perl with optional C code, no compiler 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 h - hybrid, object and function interfaces available 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.modules. Most Modules are nested in categories such as IPC::Open2 and IPC::Open3. These are shown as 'IPC::' on one line then each module listed below with a '::' prefix. Ideas For Adoption Modules listed as in the 'i' Development Stage with no contact reference are ideas without an owner. Feel free to 'adopt' these but please let me know so that we can update the list and thus inform anyone else who might be interested. Adoption simply means that you either hope to implement the module one day or would like to cooperate with anyone else who might be interested in implementing it. Cooperation Similarly, if an idea that interests you has been adopted by someone please contact them so you can share ideas. Just because an idea has been adopted does NOT imply that it's going to be implemented. Just because a module is listed and being implemented does NOT mean it'll get finished. Waiting silently in the hope that the Module will appear one day is unlikely to be fruitful! Offer to help. Cooperate. Pool your efforts. Go on, try it! The same applies to modules in all states. Most modules are developed in limited spare time. If you're interested in a module don't just wait for it to happen, offer to help. Module developers should feel free to announce incomplete work early. If you're not going to be able to spend much time on something then say so. If you invite cooperation maybe someone will implement it for you! _______________________________________________________________________ 2) Perl Core Modules, Perl Language Extensions and Documentation Tools Name DSLI Description Info ----------- ---- -------------------------------------------- ----- CORE Sucf Internal package for perl native functions P5P UNIVERSAL SucO Internal universal base-class JACKS SUPER SucO Internal class to access superclass methods P5P DynaLoader SucO Dynamic loader for shared libraries P5P AutoLoader SupO Automatic function loader (using AutoSplit) P5P SelfLoader SdpO Automatic function loader (using __DATA__) JACKS Exporter SupO Implements default import method for modules P5P Carp Supf Throw exceptions outside current package P5P Config Supf Stores details of perl build configuration P5P English Supf Defines English names for special variables P5P Symbol SupO Create 'anonymous' symbol (typeglobs) refs CHIPS Opcode Supf Disable named opcodes when compiling code TIMB Taint bdpf Utilities related to tainting PHOENIX Perl Pragmatic Modules builtin adcf A selection of subs destined for the core GBARR constant Supf Define compile-time constants P5P ! diagnostics Sdpf For reporting perl diagnostics in full form TOMC enum cdpf resemble enumerated types in C ZENIN integer Supf Controls float vs. integer arithmetic P5P less Supf Controls optimisations (yet unimplemented) P5P lib Supf Simple way to add/delete directories in @INC P5P overload SdpO Overload perl operators for new data types ILYAZ sigtrap Supf For trapping an abort and giving a traceback P5P strict Supf Controls averments (similar to pragmas) P5P subs Supf use subs qw(x y); is short for sub x; sub y; P5P vars Supf predeclare variable names P5P Perl Language Extensions Alias bdcf Convenient access to data/code via aliases GSAR Error adpO Error/exception handling in an OO-ish way GBARR Perl adcO Create Perl interpreters from within Perl GSAR + 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 bdpr 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 Module Support Module:: ::Reload Rdpf Reloads files in %INC based on timestamps JPRIT + Documentation Tools: Pod:: ::Diff cdpf compare two POD files and report diff IANC ::HTML cdpr converter to HTML KJALB ::Index cdpr index generator KJALB ::Latex cdpr converter to LaTeX KJALB ::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 ::Leak Rdcf Find perl objects that are not reclaimed NI-S + ::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:: ::PVCS i PVCS Version Manager (intersolv.com) BMIDD + ::RCS idpf Interface layer over RCS (See also Rcs) RJRAY ::RCE idcf Perl layer over RCE C API RJRAY 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 Async:: ::Group adpO Deal with simultaneous asynchronous calls DDUMONT + ::Process i class to run sub-processes DDUMONT + Proc:: ::Background bdpO OS independent background process objects BZAJAC + ::ExitStatus cdpf Interpret and act on wait() status values ROSCH ::Forkfunc Rdpf Simple lwall-style fork wrapper MUIR ::ProcessTable adcO Unix process table information DURIST + ::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 Unix:: ::UserAdmin Rdpf Interface to Unix Account Information JZAWODNY + 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 cdpO Client of Dictionary Server Protocol (DICT) ABIGAIL ! ::Dnet cdcO DECnet-specific socket usage SPIDB ::Domain adpf Try to determine TCP domain name of system GBARR ::DummyInetd RdpO A dummy Inetd server GBARR ::FTP adpf Interface to File Transfer Protocol GBARR ::Gen 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 SNMP:: ::Monitor adpO Accounting and graphical display JWIED + Parallel:: ::Pvm bdcf Interface to the PVM messaging service EWALKER CORBA:: ::IOP::IOR adpO Decode, munge, and re-encode CORBA IORs PHILIPA ::IDLtree adpf IDL to symbol tree translator OMKELLOGG + _______________________________________________________________________ 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 ::Fourier i Fast Fourier Transforms AQUMSIEH + ::Fraction bdpO Fraction Manipulation KEVINA ::IEEE i Interface to ANSI/IEEE Std 754-1985 funcs ::Integral i Integration of data AQUMSIEH + ::Interpolate Rdpr Polynomial interpolation of data MATKIN ::LinearProg idp Linear programming utilities JONO ::Matrix adpO Matrix data type (transpose, multiply etc) ULPFR ::MatrixBool RdcO Matrix of booleans (Boolean Algebra) STBEY + ::MatrixCplx idpO Matrix data type for Complex Numbers STBEY ::MatrixReal RdpO Everything you ever wanted to do with Matr. STBEY ::Pari adcf Interface to the powerful PARI library ILYAZ ::Polynomial RdpO Polynomials as objects MATKIN ::Prime i Prime number testing GARY ::RandomPrime i Generates random primes of x bits GARY ::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 ::MaxEntropy Rdpf Maximum Entropy Modeling TERDOEST + ::OLS bdpO ordinary least squares (curve fitting) SMORTON + ::ROC bdpO ROC curves with nonparametric conf. bounds HAKESTLER Algorithms::Numerical:: ::Shuffle Rdph Knuth's shuffle algorithm ABIGAIL ! ::Sample RDph Knuth's sample algorithm ABIGAIL ! PDL amcf Perl Data Language - numeric analysis env PERLDL PDL:: ::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:: ::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 ::Object bdcO Set of Objects (smalltalkish: IdentitySet) JLLEROY ::Scalar adpO Set of scalars (inc references) JHI ::Window bdpO Manages an interval on the integer line SWMCD Graph:: ::Element RdpO Base class for element of directed graph NEILB ::Node RdpO A node in a directed graph NEILB ::Edge RdpO An edge in a directed graph NEILB ::Kruskal Rdpf Kruskal Algorithm for Minimal Spanning Trees STBEY Decision:: ::Markov bdpO Build/evaluate Markov models for decisions ALANSZ ! Date:: ::Calc Rdcf Gregorian calendar date calculations STBEY ::Convert cdpO Conversion between Gregorian, Hebrew, more? MORTY ::CTime adpf Updated ctime.pl with mods for timezones GBARR ::Format Rdpf Date formatter ala strftime GBARR ::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 rdpO 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 rdpO 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 Handles nested insertion points in your data 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 ::ODBC amcO ODBC Driver for DBI DBIML + ::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 ::dmObject cdpO Object-based interface to Documentum EDMS JGARRISON + 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.perl.com/CPAN/modules/by-module/Tk/tk-modlist.html 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 Clips adpO Interface to the Expert System Clips MSULLIVAN + ShellScript:: ::Env adpO Simple sh and csh script generator SVENH + _______________________________________________________________________ 10) File Names, File Systems and File Locking (see also File Handles) Name DSLI Description Info ----------- ---- -------------------------------------------- ----- Cwd Supf Current working directory functions P5P File:: ::Attrib idpO Get/set file attributes (stat) TYEMQ ::BSDGlob bdcf Secure, csh-compatible filename globbing GBACON + ::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 ::Df adpf Free disk space utilities (h2ph required) FTASSIN + ::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 Rdpr Disk free based on Filesys::Statvfs IGUTHRIE ! ::DiskFree adpO OS independant parser of the df command ABARCLAY + ::Statvfs Rdcf Interface to the statvfs() system call IGUTHRIE + ::dfent adpf By-name interface TOMC ::mntent adpf By-name interface TOMC ::statfs adpf By-name interface TOMC LockFile:: Application-level locking facilities ::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 ::FillIn rdpo Fill-in text templates KWILLIAMS + ::Format RdpO Advanced paragraph formatting GABOR ::Graphics RdpO Graphics rendering toolkit with text output 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 RdpO 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 ERG Rdpf An extensible report generator framework PHOENIXL + 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 ::Yapp adpO Generate Perl OO parsers from LALR1 grammars FDESAR + 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 ::Builder adpO OO interface for creating SQL statements ZENIN + 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:: ::Charset Rdpf Character set names and aliases MTHURN + ::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 RADIUS:: ::Dictionary bdpO Object interface to RADIUS dictionaries CHRMASTO ! ::Packet bdpO Object interface to RADIUS (rfc2138) packets CHRMASTO ! ::UserFile bdpO Manipulate a RADIUS users file OEVANS + SSLeay:: ::* cdcO Interface to SSLeay EAYNG _______________________________________________________________________ 15) World Wide Web, HTML, HTTP, CGI, MIME etc (see Text Processing) Name DSLI Description Info ----------- ---- -------------------------------------------- ----- URI:: ::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 ::EP adpO Modular, extensible Perl embedding JWIED + ::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 ::SimpleParse bdpO Bare-bones HTML parser KWILLIAMS + ::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:: ::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.perl.com/CPAN/modules/by-module/Apache/apache-modlist.html _______________________________________________________________________ 16) Server and Daemon Utilities Name DSLI Description Info ----------- ---- -------------------------------------------- ----- EventServer RupO Triggers objects on i/o, timers & interrupts JACKS ::Functions Rupf Utility functions for initializing servers JACKS ::*Wrapper Rupf Bunch of wrappers for different server types JACKS ::Gettimeofday Rupr gettimeofday syscall wrapper JACKS ::Signal Rupr signalhandler for the eventserver JACKS Server::Server:: ::EventDriven RupO See 'EventServer' (compatibility maintained) JACKS Server::Echo:: ::MailPipe cup A process which accepts piped mail JACKS ::TcpDForking cup TCP daemon which forks clients JACKS ::TcpDMplx cup TCP daemon which multiplexes clients JACKS ::TcpISWFork cup TCP inetd wait process, forks clients JACKS ::TcpISWMplx cup TCP inetd wait process, multiplexes clients JACKS ::TcpISNowait cup TCP inetd nowait process JACKS ::UdpD cup UDP daemon JACKS ::UdpIS cup UDP inetd process JACKS Server::Inet:: ::Functions cdpf Utility functions for Inet socket handling JACKS ::Object cupO Basic Inet object JACKS ::TcpClientObj cupO A TCP client (connected) object JACKS ::TcpMasterObj cupO A TCP master (listening) object JACKS ::UdpObj cupO A UDP object JACKS Server::FileQueue:: ::Functions cupf Functions for handling files and mailboxes JACKS ::Object cupO Basic object JACKS ::DirQueue cupO Files queued in a directory JACKS ::MboxQueue cupO Mail queued in a mail box JACKS Server::Mail:: ::Functions cupf Functions for handling files and mailboxes JACKS ::Object cupO Basic mail object JACKS MailBot cdpO Archive server, listserv, auto-responder RHNELSON NetServer:: ::Generic adpO generic OOP class for internet servers CHSTROSS + _______________________________________________________________________ 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 ::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 cdcO Methods for System V style STREAMS control NI-S ::Scalar RdpO I/O handle to read/write to a string ERYQ ::ScalarArray RdpO I/O handle to read/write to array of scalars ERYQ ::Seekable cdpO Methods for seekable input/output handles GBARR ::Select adpO Object interface to system select call GBARR ::Socket cdpO Methods for socket input/output handles GBARR ::Stty bdpf POSIX compliant stty interface AUSCHUTZ ::Tee RdpO Multiplex output to multiple handles KENSHAN ::Wrap RdpO Wrap old-style FHs in standard OO interface ERYQ ::WrapTie adpO Tie your handles & retain full OO interface ERYQ ::Zlib adpO IO:: style interface to Compress::Zlib TOMHUGHES FileHandle SupO File handle objects and methods P5P FileCache Supf Keep more files open than the system permits P5P DirHandle SupO Directory handle objects and methods CHIPS SelectSaver SupO Save and restore selected file handle CHIPS Selectable cdpO Event-driven I/O streams MUIR Log:: ::Topics Rdpf Control flow of topic based logging messages JARW Expect RdpO Close relative of Don Libes' Expect in perl AUSCHUTZ + _______________________________________________________________________ 22) Microsoft Windows Modules Name DSLI Description Info ----------- ---- -------------------------------------------- ----- Win32:: ::AdminMisc Rdcf Misc admin and net functions DAVEROTH ::ChangeNotify bdcO Monitor changes to files and directories CJM ::Event bdcO Use Win32 event objects for IPC CJM ::EventLog adcf Interface to Win32 EventLog functions WIN32 ::FUtils bdcf Implements missing File Utility functions JOCASA ::GD RdcO Win32 port of the GD extension (gif module) DAVEROTH ::IPC bdcO Base class for Win32 synchronization objects CJM ::Message bdcf Network based message passing DAVEROTH ::Mutex bdcO Use Win32 mutex objects for IPC CJM ::NetAdmin adcf Interface to Win32 NetAdmin functions WIN32 ::NetResource adcf Interface to Win32 NetResource functions WIN32 ::ODBC Rd+O ODBC interface for accessing databases DAVEROTH ::OLE adcf Interface to OLE API functions WIN32 ::Pipe Rd+O Named Pipes and assorted function DAVEROTH ::Process adcf Interface to Win32 Process functions WIN32 ::Registry adcf Interface to Win32 Registry functions WIN32 ::Semaphore bdcO Use Win32 semaphore objects for IPC CJM ::SerialPort adpO Win32 Serial functions/constants/interface BBIRTH ::WinError adcf Interface to Win32 WinError functions WIN32 WinNT cdcf Interface to Windows NT specific functions WIN32 NT cdcf Old name for WinNT - being phased out WIN32 Win95 i Interface to Windows 95 specific functions WIN32 Win32API ::Registry adcf Win32 Registry functions/constants TYEMQ ::File cdcf Win32 file/dir functions/constants TYEMQ ::Window cdcf Win32 Windowing functions/constants TYEMQ ::WinStruct cdcf Routines for Win32 Windowing data structures TYEMQ ::Console cdcf Win32 Console Window functions/consts TYEMQ _______________________________________________________________________ 23) Miscellaneous Modules Name DSLI Description Info ----------- ---- -------------------------------------------- ----- Archie Rdpf Archie queries via Prospero ARDP protocol GBOSS Bundle i Namespace reserved for modules collections ANDK CPAN RdpO Perl Archive browse and download ANDK Neural ad+O Generic simulation of neural networks LUKKA Nexus cdcO Interface to Nexus (threads/ipc/processes) RDO Pcap i An interface for LBL's packet capture lib AMOSS Roman Rdpf Convert Roman numbers to and from Arabic OZAWA SDDF cd+O Interface to Pablo Self Defining Data Format FIS Wais Rdcf Interface to the freeWAIS-sf libraries ULPFR Business:: ::CreditCard Rdpf Credit card number check digit test JONO ::ISBN RdpO Work with ISBN as objects BDFOY Bio:: ::* i Utilities for molecular biology SEB Remedy:: ::AR adcO Interface to Remedy's Action Request API RIK ARS Rd?? Interface to Remedy's Action Request API JMURPHY Psion:: ::Db idpO Handle Psion palmtop computer database files IANPX HP200LX:: ::DB cdpO Handle HP 200LX palmtop computer database GGONTER ::DBgui cdpO Tk base GUI for HP 200LX db files GGONTER Agent cdpO Transportable Agent module SPURKIS NetObj adpO Module loading in real time over TCP/IP JDUNCAN Penguin RdpO Remote Perl in Secure Environment AMERZKY + Penguin:: ::Easy RdpO Provides quick, easy access to Penguin API JDUNCAN BarCode:: ::UPC i Produce PostScript UPC barcodes JONO Audio:: ::Sox i sox sound library as one or more modules NI-S MIDI cdpO Object interface to MIDI files SBURKE + Logfile RdpO Generic methods to analyze logfiles ULPFR SyslogScan:: ::SyslogEntry bdpO Parse UNIX syslog RHNELSON ::SendmailLine bdpO Summarize sendmail transactions RHNELSON Chemistry:: ::Elements RdpO Working with Chemical Elements BDFOY ::Isotopes idpO extends Elements to deal with isotopes BDFOY FAQ:: ::OMatic RdpO A CGI-based FAQ/help database maintainer JHOWELL Geo:: ::METAR Rdpf Process Aviation Weather (METAR) Data JZAWODNY + ::WeatherNOAA Rdpf Current/forecast weather from NOAA MSOLOMON + Games:: ::WordFind bdpO Generate word-find type puzzles AJOHNSON Cisco:: ::Conf adpO Cisco router administratian via TFTP JWIED Silly:: ::StringMaths adpf Do maths with letters and strings SKINGTON + _______________________________________________________________________ 24) Interface Modules to Commercial Software Name DSLI Description Info ----------- ---- -------------------------------------------- ----- Resolute:: ::RAPS cd+O Interface to Resolute Software's RAPS CHGOETZE AltaVista:: ::SearchSDK cdcf Perl Wrapper for AltaVista SDK functionality JTURNER + ======================================================================= Part 3 - Big Projects Registry ============================== This section of the Module List is devoted to listing "Big Projects". I don't want to define Big (or even Project) here. Hopefully the items below speak for themselves. Almost all are just ideas, though some have been dabbled with and some are active projects. These are ideas for people with very strong skills and lots of time. Please talk, and listen, to Larry and the perl5-porters _before_ starting to do any work on projects which relate to the core implementation of Perl. Ask not when these will be implemented, ask instead how you can help implement them. 1) Items in the Todo File The Todo supplied with Perl lists over 50 items in categories ranging from "Would be nice to have" to "Vague possibilities". Contacts: P5P 2) Multi-threading This is really two projects. True threads (e.g., POSIX) using multiple independant perl interpreter structures and simple timeslicing of 'tasks' within a single perl interpreter. True threads requires operating system support or an external thread library, simple timeslicing does not (and should be portable to all platforms). Malcolm Beattie <[email protected]> has done extensive work in this area and is folding this work into Perl now for version 5.005 or 5.006. Contacts: MICB P5P 3) Object Management Group CORBA & IDL Contacts: COPEML BARTS 4) Expand Tied Array Interface LEN, PUSH, POP, SHIFT, UNSHIFT and a fallback to SPLICE are needed. Complicated by very widespread use of arrays within perl internals. Contacts: P5P CHIPS 5) Extend Yacc To Write XS Code Contacts: JAKE NI-S P5P 6) Approximate Matching Regular Expressions Add support for approximate matching m/.../a (like the agrep utility). Contacts: JHI ======================================================================= Part 4 - Standards Cross-reference ================================== This section aims to provide a cross reference between standards that exist in the computing world and perl modules which have been written to implement or interface to those standards. It also aims to encourage module authors to consider any standards that might relate to the modules they are developing. 1) IETF - Internet Engineering Task Force (RFCs) Standard Description Module Name -------- ----------- ----------- RFC821 Simple Mail Transfer Protocol Net::SMTP RFC822 Internet Mail Header Mail::Header RFC822 Internet Mail addresses Mail::Address RFC867 Daytime Protocol Net::Time RFC868 Time Protocol Net::Time RFC959 File Transfer Protocol Net::FTP RFC977 A minimal NNTP Server NNML::Server RFC977 Network News Transfer Protocol Net::NNTP RFC1035, RFC1183, RFC1706 Domain names, implementation & specification Net::DNS RFC1123 Date conversion routines HTTP::Date RFC1321 MD5 Message-Digest Algorithm MD5 RFC1413 Identification Protocol Net::Ident RFC1521 Encode/decode quoted-printable strings MIME::QuotedPrint RFC1592 Simple Network Management Protocol Net::SNMP RFC1738 Uniform Resource Locators URI::URL RFC1777 Lightweight Directory Access Protocol Net::LDAP RFC1861 Simple Network Pager Protocol Net::SNPP RFC1866 Encode/decode HTML entities in a string HTML::Entities RFC1939 Post Office Protocol 3 Net::POP3 RFC1950-1952 ZLIB, DEFLATE, GZIP Compress::Zlib RFC1960 String Representation of LDAP Search Filters Net::LDAP::Filter RFC2045-2049 MIME - Multipurpose Internet Mail Extensions MIME::* RFC2138 Terminal server authentification and accting RADIUS RFC2229 Dictionary Server Net::Dict _______________________________________________________________________ 2) ITU - International Telegraph Union (X.*) Standard Description Module Name -------- ----------- ----------- X.209 Basic Encoding Rules for ASN.1 Convert::BER _______________________________________________________________________ 3) ISO - International Standards Organization (ISO*) Standard Description Module Name -------- ----------- ----------- ISO/R 2015-1971 Date calculations for the Gregorian calendar Date::DateCalc ISO639 Two letter codes for language identification Locale::Language ISO3166 Two letter codes for country identification Locale::Country ======================================================================= Part 5 - Who's Who ================== 1) Information / Contact Reference Details (in alphabetical order) Ref Contact Details ----- -------------------------------------------------------------- ABARCLAY Alan Barclay <[email protected]> ABH Ask BjЬrn Hansen <[email protected]> ABIGAIL Abigail <[email protected]> ABURLISON Alan Burlison <[email protected]> ABW Andy Wardley <[email protected]> ACALPINI Aldo Calpini <[email protected]> ACH Achim Bohnet <[email protected]> ADESC Alligator Descartes <[email protected]> AEPAGE Andrew E Page <[email protected]> AGENTML Mailing List For Perl5 Agents Send email to [email protected] with the body "subscribe <emailaddr>" AGIERTH Andrew P. J. Gierth <[email protected]> AGUL Ashish Gulhati <[email protected]> AJOHNSON Andrew L Johnson <[email protected]> AKSTE Alan K. Stebbens <[email protected]> ALANCITT Alan Citterman <[email protected]> ALANSZ Alan Schwartz <[email protected]> ALLENS E. Allen Smith <[email protected]> ALSCH Alan Scheinine <[email protected]> ALTITUDE Alex Tang <[email protected]> AMERZKY Andre Merzky <[email protected]> AMOSS Amos Shapira <[email protected]> AMW Andrew Wilcox <[email protected]> ANDK Andreas KЖnig <[email protected]> ANDREWF Andrew Ford <[email protected]> ANDYD Andy Dougherty <[email protected]> ANDYGLEW Andy Glew <[email protected]> ANTRO Antonio Rosella <[email protected]> APML The Perl/Apache Mailing List Mail to [email protected] with body "subscribe modperl" AQUMSIEH Ala Qumsieh <[email protected]> ARSML The ARSperl Mailing List See http://arsinfo.cit.buffalo.edu/ for mor info. ASHER Aaron Sherman <[email protected]> ASHTED Ted Ashton <[email protected]> ASTEAM ActiveState development team <[email protected]> AUSCHUTZ Austin Schutz <[email protected]> AWIN Ashley Winters <[email protected]> AWRIGLEY Ave Wrigley <[email protected]> BARTLEY Eric Bartley <[email protected]> BARTS Bart Schuller <[email protected]> BASKAR Baskar S <[email protected]> BBIRTH Bill Birthisel <[email protected]> BBUM Bill Bumgarner <[email protected]> BDFOY brian d foy <[email protected]> BENLI Ben Lindstrom <[email protected]> BHOLZMAN Benjamin Holzman <[email protected]> BHUGHES Brad Hughes <[email protected]> BJEPS Brian Jepson <[email protected]> BLANTREWI Boris Lantrewitz <[email protected]> BMEEKINGS Brian Meekings <[email protected]> BMIDD William J. Middleton <[email protected]> BMORGAN Bruce Morgan <[email protected]> BOADLER Bo Adler <[email protected]> BOBSIDE Bob Sidebotham <[email protected]> BPANNIER Benjamin Pannier <[email protected]> BPETH Bill Petheram <[email protected]> BPOWERS Brent B. Powers <[email protected]> BRADAPP Brad Appleton <[email protected]> BRIAN Brian H. Dunford-Shore <[email protected]> BRIANSP Brian W. Spolarich <[email protected]> BROCSEIB Broc Seib <[email protected]> BSUGARS Benjamin Sugars <[email protected]> BZAJAC Blair Zajac <[email protected]> CAADAMS Clifford A. Adams <[email protected]> CARL Carl Declerck <[email protected]> CARLADLER Carl Adler <[email protected]> CBAIL Charles Bailey <[email protected]> CCWF Charles C. Fu <[email protected]> CDONLEY Clayton Donley <[email protected]> CDYBED Calle Dybedahl <[email protected]> CEVANS Carey Evans <[email protected]> CFRETER Craig Freter <[email protected]> CGIP The CGI-Perl Developers mailing list Mailing list is temporarily closed CHAMAS Joshua Chamas <[email protected]> CHGEUER Christian H. Geuer <[email protected]> CHGOETZE Christian Goetze <[email protected]> CHIPS Chip Salzenberg <[email protected]> CHOUPT Chuck Houpt <[email protected]> CHOWARTH Colin Howarth <[email protected]> CHRISCHU Christian Schultze <[email protected]> CHRMASTO Christopher Masto <[email protected]> CHRWOLF Christophe Wolfhugel <[email protected]> CHSTROSS Charlie Stross <[email protected]> CHTHORMAN Chris Thorman <[email protected]> CHTTRAX Christoph T. Traxler <[email protected]> CJM Christopher J. Madsen <[email protected]> CLINTDW Clinton Wong <[email protected]> CMASON Chris Mason <[email protected]> CNANDOR Chris Nandor <[email protected]> COLINK Colin Kuskie <[email protected]> COOPERCL Clark Cooper <[email protected]> COPEML The CORBA Perl Mailinglist To join the list, send a mail with just the word subscribe in the body to [email protected] (See http://www.lunatech.com/cope) CTDEAN Chris Dean <[email protected]> CXL Chris Leach <[email protected]> DALEAMON Dale Amon <[email protected]> DALGL Bob Dalgleish <[email protected]> DANIEL Daniel <[email protected]> DANKOGAI Dan Kogai <[email protected]> DANMQ Daniel M. Quinlan <[email protected]> DAVEROTH Dave Roth <[email protected]> DBEAZLEY Dave Beazley <[email protected]> DBIML The DBI Mailing Lists Subscribe via http://www.fugue.com/dbi. If you can't do that then mail to [email protected] and ask (the human, Ted Lemon) to subscribe you to one or more of dbi-announce, dbi-users, or dbi-dev. DBONNER David Bonner <[email protected]> DBRESH Doug Breshears <[email protected]> DCARRIGAN Dave Carrigan <[email protected]> DCEPML The DCE-Perl mailing list Mail to [email protected] with body "subscribe dce-perl <your-address>" DCONWAY Damian Conway <[email protected]> DDUMONT Dominique Dumont <[email protected]> DENWA Dennis Watson <[email protected]> DEVEN Deven T. Corzine <[email protected]> DEWEG Douglas E. Wegscheid <[email protected]> DHUNT Douglas Hunt <[email protected]> DIONALM Dion Almaer <[email protected]> DJBECKETT Dave Beckett <[email protected]> DKWILSON Damion K. Wilson <[email protected]> DMACKS Daniel Macks <[email protected]> DMEGG David Megginson <[email protected]> DMO Darryl Okahata <[email protected]> DMR Dean Roehrich <[email protected]> DNAD Dave Nadler <[email protected]> DOMO Dominic Dunlop <[email protected]> DOUGB Doug Bagley <[email protected]> DOUGL Douglas Lankshear <[email protected]> DOUGM Doug MacEachern <[email protected]> DSB David Boyce <[email protected]> DSHEPP Doug "Sirilyan" Sheppard <[email protected]> DSOUFLIS Dimitrios Souflis <[email protected]> DSTALDER Darren Stalder <[email protected]> DSUGAL Dan Sugalski <[email protected]> DTOWN David M. Town <[email protected]> DURIST Dan Urist <[email protected]> DVKLEIN Daniel V. Klein <[email protected]> EAYNG Eric Young <[email protected]> EDJORDAN Ed Jordan <[email protected]> EDLIU Edward Liu <[email protected]> EESTABROO Eric Estabrooks <[email protected]> EGROSS Etienne Grossmann <[email protected]> EHOOD Earl Hood <[email protected]> ELMAR Elmar Schalueck <[email protected]> ENEGAARD Eric Negaard <[email protected]> ERICA Eric Arnold <[email protected]> ERYQ Eryq <[email protected]> ESR Eric S. Raymond <[email protected]> EVANPRO Evangelo Prodromou <[email protected]> EWALKER Edward Walker <[email protected]> FDESAR Francois Desarmenien <[email protected]> FIMM Dennis Taylor <[email protected]> FIS Frank Ian Smith <[email protected]> FJH Frederick Hirsch <[email protected]> FLEITNER Felix von Leitner <[email protected]> FLETCH Mike Fletcher <[email protected]> FMC Frederic Chauveau <[email protected]> FORS The "Friends of Randal Schwartz" mailing list Mail to [email protected] with body "subscribe fors-discuss <your-address>" FPIVARI Fabrizio Pivari <[email protected]> FRAMM Frederik Ramm <[email protected]> FRANCOC Franco Callari <[email protected]> FSG Felix Sebastian Gallo <[email protected]> FTASSIN Fabien Tassin <[email protected]> GAAS Gisle Aas <[email protected]> GABOR GАbor Egressy <[email protected]> GAND Greg Anderson <[email protected]> GARY Gary Howland <[email protected]> GBACON Greg Bacon <[email protected]> GBARR Graham Barr <[email protected]> GBAUER Georg Bauer <[email protected]> GBOSS Greg Bossert <[email protected]> GDAMORE Garrett D'Amore <[email protected]> GEHIC Gerard Hickey <[email protected]> GENJISCH Genji Schmeder <[email protected]> GFLOHR Guido Flohr <[email protected]> GGONTER Gerhard Gonter <[email protected]> GJB Geoffrey Broadwell <[email protected]> GKNOPS Gerd Knops <[email protected]> GLENNWOOD Glenn Wood <[email protected]> GLOVER Mike Glover <[email protected]> GMLEWIS Glenn M. Lewis <[email protected]> GNAT Nathan Torkington <[email protected]> GOSSAMER Gossamer <[email protected]> GREGFAST Greg Fast <[email protected]> GREGG Gregg Helt <[email protected]> GRICHTER Gerald Richter <[email protected]> GSAR Gurusamy Sarathy <[email protected]> GSM Joe Marzot <[email protected]> GSPAF Gene Spafford <[email protected]> GSPIVEY Gary Spivey <[email protected]> GTHYNI GЖran Thyni <[email protected]> GUYDX Guy Decoux <[email protected]> GWARD Greg Ward <[email protected]> HAKANARDO Hakan Ardo <[email protected]> HAKESTLER Hans A. Kestler <[email protected]> HALPOM Hal Pomeranz <[email protected]> HAYASHI Hiroo HAYASHI <[email protected]> HIGHTOWE Lester Hightower <[email protected]> HMBRAND H. Merijn Brand <[email protected]> HMUELLER Hanno Mueller <[email protected]> HPALM Hartmut Palm <[email protected]> HTCHAPMAN H. Todd Chapman <[email protected]> HTOUG Henrik Tougaard <[email protected]> HVDS Hugo van der Sanden <[email protected]> IANC Ian Clatworthy <[email protected]> IANPX Ian Phillipps <[email protected]> IFLAN Ian Flanigan <[email protected]> IGUTHRIE Ian Guthrie <[email protected]> IKETRIS Ilya Ketris <[email protected]> IKLUFT Ian Kluft <[email protected]> ILYAZ Ilya Zakharevich <[email protected]> INGOMACH Ingo Macherius <[email protected]> JACKS Jack Shirazi <[email protected]> JAKE Jake Donham <[email protected]> JAMCC Jamie McCarthy <[email protected]> JANL Nicolai Langfeldt <[email protected]> JANPAZ Jan Pazdziora <[email protected]> JARW John A.R. Williams <[email protected]> JASONS Jason E. Stewart <[email protected]> JBAKER Jeffrey Baker <[email protected]> JBODNAR Jason Bodnar <[email protected]> JCMURPHY Jeff Murphy <[email protected]> JCOSTOM Jason Costomiris <[email protected]> JCRISTY John Cristy <[email protected]> JDALLMAN John Dallman <[email protected]> JDUNCAN James Duncan <[email protected]> JENDA Jan Krynicky <[email protected]> JFITZ James FitzGibbon <[email protected]> JFRIEDL Jeffrey Friedl <[email protected]> JGARRISON Jim Garrison <[email protected]> JGBISHOP Jeremy G. Bishop <[email protected]> JGLICK Jesse N. Glick <[email protected]> JGROENVEL John D Groenveld <[email protected]> JHA John Aughey <[email protected]> JHI Jarkko Hietaniemi <[email protected]> JHORWITZ Jeff Horwitz <[email protected]> JHOWELL Jon Howell <[email protected]> JHPB Joseph H. Buehler <[email protected]> JJDG Hans de Graaff <[email protected]> JKAST Jason Kastner <[email protected]> JKEGL Jeffrey Kegler <[email protected]> JKODIS John Kodis <[email protected]> JLBEC Joel Becker <[email protected]> JLEVAN Jerry LeVan <[email protected]> JLLEROY Jean-Louis Leroy <[email protected]> JMAHAN J. Michael Mahan <[email protected]> JMM John Macdonald <[email protected]> JMURPHY Joel Murphy <[email protected]> JNH Joseph N. Hall <[email protected]> JNOLAN John Nolan <[email protected]> JOCASA Joe Casadonte <[email protected]> JOEHIL Joe Hildebrand <[email protected] > JOHNH John Heidemann <[email protected]> JOHNL Jonathan Leffler <[email protected]> JONG Jong Park <[email protected]> JONO Jon Orwant <[email protected]> JOSERODR Jose A. Rodriguez <[email protected]> JPC Jan-Pieter Cornet <[email protected]> JPRAVETZ Jim Pravetz <[email protected]> JPRIT Joshua N. Pritikin <[email protected]> JROGERS Jay Rogers <[email protected]> JROWE Jeff Rowe <[email protected]> JSIRACUSA John Siracusa <[email protected]> JSTOF John Stoffel <[email protected]> JSWARTZ Jonathan Swartz <[email protected]> JTOBEY John Tobey <[email protected]> JTURNER James Turner <[email protected]> JV Johan Vromans <[email protected]> JVENIER John Venier <[email protected]> JWAT John Watson <[email protected]> JWIED Jochen Wiedmann <[email protected]> JWIEGLEY John Wiegley <[email protected]> JZAWODNY Jeremy D. Zawodny <[email protected]> KDOWNEY Kyle Downey <[email protected]> KENFOX Ken Fox <[email protected]> KENHOLM Kenneth Alexander Holm III <[email protected]> KENSHAN Chung-chieh Shan <[email protected]> KEVINA Kevin Atkinson <[email protected]> KGB Karl Glazebrook <[email protected]> KJALB Kenneth Albanowski <[email protected]> KJOHNSON Kevin Johnson <[email protected]> KMACLEOD Ken MacLeod <[email protected]> KONDO Yoshiyuki KONDO <[email protected]> KRISHPL Krishna Shamu Sethuraman <[email protected]> KSB Simon Berg <[email protected]> KSTAR Kurt D. Starsinic <[email protected]> KTHOMAS Kenny Thomas <[email protected]> KTORP Kristian Torp <[email protected]> KWILLIAMS Ken Williams <[email protected]> LDACHARY Loic Dachary <[email protected]> LDS Lincoln D. Stein <[email protected]> LEIFHED Leif Hedstrom <[email protected]> LEITE Pedro Leite <[email protected]> LFINI Luca Fini <[email protected]> LMJM Lee McLoughlin <[email protected]> LMOLNAR Laszlo Molnar <[email protected]> LSTAF Lennart Staflin <[email protected]> LUISMUNOZ Luis Munoz <[email protected]> LUKKA Tuomas J. Lukka <[email protected]> LUSOL Stephen O. Lidie <[email protected]> LUTHERH Luther Huffman <[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" MAHEX Mark "Hex" Hershberger <[email protected]> MAK Martijn Koster <[email protected]> MARCLANG Marc Langheinrich <[email protected]> MARCP Marc Paquette <[email protected]> MARKB Mark Biggar <[email protected]> MARKC Mark Constable <[email protected]> MARKIM Mark A. Imbriaco <[email protected]> MARKM Mark Mielke <[email protected]> MARKPRIOR Mark Prior <[email protected]> MARTINB Martin Bartlett <[email protected]> MATKIN Matz Kindahl <[email protected]> MATTW Matthew M. Wright <[email protected]> MAURICE Maurice Aubrey <[email protected]> MCPL The MacPerl mailing list Mail to [email protected] with body "subscribe". There is an announcement-only low-volume mailing list too with the subscription address [email protected]. MDARWIN Matthew Darwin <[email protected]> MENGEL Marc W. Mengel <[email protected]> MERGL Edmund Mergl <[email protected]> MERLYN Randal L. Schwartz <[email protected]> MEWP Michael Peppler <[email protected]> MFUHR Michael Fuhr <[email protected]> MGH Marc Hedlund <[email protected]> MGRABNAR Matija Grabnar <[email protected]> MHM Mike Moran <[email protected]> MICB Malcolm Beattie <[email protected]> MICHAELD Michael D. Dowling <[email protected]> MIKEDLR Michael De La Rue <[email protected]> MIKEH Mike Heins <[email protected]> MIKEKING Michael King <[email protected]> MIKESTOK Mike Stok <[email protected]> MIVKOVIC Milivoj Ivkovic <[email protected]> MJAEG Michal Jaegermann <[email protected]> MJD Mark-Jason Dominus <[email protected]> MJS Michael Smith <[email protected]> MKOSSATZ Max Kossatz <[email protected]> MKRUSE Matt Kruse <[email protected]> MLEHMANN Marc Lehmann <[email protected]> MMML The MakeMaker mailing list Mail to [email protected] with body "subscribe" MORTY Mordechai Abzug <[email protected]> MPECK Martyn Peck <[email protected]> MPIOTR Michael Piotrowski <[email protected]> MRG Matthew Green <[email protected]> MRJC Martin RJ Cleaver <[email protected]> MRKAE Mark R. Kaehny <[email protected]> MSCHILLI Michael Schilli <[email protected]> MSCHWARTZ Martin Schwartz <[email protected]> MSCHWERN Michael G Schwern <[email protected]> MSHLD Michael Shields <[email protected]> MSHOYHER Mike Shoyher <[email protected]> MSOLOMON Mark Solomon <[email protected]> MSULLIVAN Michael P. Sullivan <[email protected]> MTHURN Martin Thurn <[email protected]> MUIR David Muir Sharnoff <[email protected]> MVERB Martien Verbruggen <[email protected]> NEERI Matthias Ulrich Neeracher <[email protected]> NEILB Neil Bowers <[email protected]> NEMWS Nem W Schlecht <[email protected]> NI-S Nick Ing-Simmons <[email protected]> NICO Nick Gianniotis <[email protected]> NIGELM Nigel Metheringham <[email protected]> NIKIP Nikolay Pelov <[email protected]> NJENSEN Neil Jensen <[email protected]> NJLEON Nicholas J. Leon <[email protected]> NMONNET Nicolas Monnet <[email protected]> NNEUL Nathan Neulinger <[email protected]> NREICHEN Nils Reichen <[email protected]> NTHIERY Nicolas ThiИry <[email protected]> NVPAT Nathan V. Patwardhan <[email protected]> NWALSH Norman Walsh <[email protected]> NWCLARK Nicholas.Clark <[email protected]> NWINT Neil Winton <[email protected]> OCROW Owen Crow <[email protected]> OEVANS O'Shaughnessy Evans <[email protected]> OKAMOTO Jeff Okamoto <[email protected]> OMKELLOGG Oliver M. Kellogg <[email protected]> ORENBK Oren Ben-Kiki <[email protected]> OTAYLOR Owen Taylor <[email protected]> OTISG Otis Gospodnetic <[email protected]> OZAWA OZAWA Sakuro <[email protected]> P5P The Perl5 Porters Mailing List Mail to [email protected] with body "subscribe" PACKRATS The Packrats Mailing List Mail to [email protected] with body "subscribe perl-packrats <your address>" PARKER Michael Parker <[email protected]> PATM Pat Martin <[email protected]> PAULG Paul Gampe <[email protected]> PEARCEC Christian Pearce <[email protected]> PEASE Mark Pease <[email protected]> PEM Peter Murray <[email protected]> PERLDL The Perl Data Language Mailing List Mail subscription requests to [email protected] with body "subscribe" PETERGAL Peter Gallasch <[email protected]> PGPML The PGP Module Mailing List Mail to [email protected] with body "subscribe perl-pgp <your-address>" PGUEN Philip Guenther <[email protected]> PHENSON Paul B. Henson <[email protected]> PHILIPA Philip Aston <[email protected]> PHILIPM Philip Mikal <[email protected]> PHOENIX Tom Phoenix <[email protected]> PHOENIXL Scott <[email protected]> PKUTS Peter Kutschera <[email protected]> PLDAP Perl LDAP mailing list Mail subscription requests to [email protected] with body "subscribe" PLISTER Peter Lister <[email protected]> PMH Peter Haworth <[email protected]> PMKANE Patrick Michael Kane <[email protected]> PMQS Paul Marquess <[email protected]> PRATP Pratap Pereira <[email protected]> PROWELL Peter Rowell <[email protected]> PRYAN Patrick Ryan <[email protected]> PSEIBEL Peter Seibel <[email protected]> PSHARPE Paul Sharpe <[email protected]> PTILL Peter Tillemans <[email protected]> PVANDRY Phillip Vandry <[email protected]> PVERD Philippe Verdret <[email protected]> PVHP Peter Prymmer <[email protected]> PWO Peter W. Osel <[email protected]> QUONG Russell W Quong <[email protected]> RAM Raphael Manfredi <[email protected]> RAP Ryan Alyn Porter <[email protected]> RAVN Thorbjoern Ravn Andersen <[email protected]> RBERJON Robin Berjon <[email protected]> RBOW Richard Bowen <[email protected]> RCAPUTO Rocco Caputo <[email protected]> RDO Robert Olson <[email protected]> REDEN Robert Eden <[email protected]> RFOLEY Richard Foley <[email protected]> RHNELSON Rolf Harold Nelson <[email protected]> RHOFER Robert Hofer <[email protected]> RIK Rik Harris <[email protected]> RJRAY Randy J Ray <[email protected]> RJS Robert J Seymour <[email protected]> RKOBES Randy Kobes <[email protected]> RMOSE Russell Mosemann <[email protected]> RNAIMA Reza Naima <[email protected]> ROSCH Roderick Schertler <[email protected]> RRA Russ Allbery <[email protected]> RSAVAGE Ron Savage <[email protected]> RSE Ralf S. Engelschall <[email protected]> RSI Rajappa Iyer <[email protected]> RURBAN Reini Urban <[email protected]> RVA Rodger V. Anderson <[email protected]> RWALKER Roland Walker <[email protected]> SAM Simon Matthews <[email protected]> SAMPO Sampo Kellomaki <[email protected]> SBALA S Balamurugan <[email protected]> SBECK Sullivan Beck <[email protected]> SBURKE Sean M. Burke <[email protected]> SCOOPER Simon Cooper <[email protected]> SCOTTVR Scott VanRavenswaay <[email protected]> SDOWD Sean Dowd <[email protected]> SEB Steven Brenner <[email protected]> SEMM Steve Emmerson <[email protected]> SFARRELL Stephen Farrell <[email protected]> SFINK Steve A Fink <[email protected]> SGEL Sergio Gelato <[email protected]> SGMIANO Stephen G. Miano <[email protected]> SHARI Davide Migliavacca <[email protected]> SHAWNPW Shawn P. Wallace <[email protected]> SHERWOOD Steve Sherwood <[email protected]> SHGUN Shishir Gundavaram <[email protected]> SHIGIO Shigio Yamaguchi <[email protected]> SHIKONO Shinji KONO <[email protected]> SHUTTON Scott Hutton <[email protected]> SKANE Steve Kane <[email protected]> SKIMO Sven Verdoolaege <[email protected]> SKINGTON Sam Kington <[email protected]> SKUNZ Steven L. Kunz <[email protected]> SMCCAM Stephen McCamant <[email protected]> SMORTON Sanford Morton <[email protected]> SMPILL Steve Pillinger <[email protected]> SNEEX Bill Jones <[email protected]> SOVA Vladimir Sovetov <[email protected]> SPIDB Spider Boardman <[email protected]> SPP Stephen P Potter <[email protected]> SPURKIS Steve Purkis <[email protected]> SREZIC Slaven Rezic <[email protected]> SRIEHM Stephen Riehm <[email protected]> SRIRAM Sriram Srinivasan <[email protected]> SRZ Stephen Zander <[email protected]> STANM Stan Melax <[email protected]> STBEY Steffen Beyer <[email protected]> STEVENSL Steven Slegel <[email protected]> STLACY Stacy Lacy <[email protected]> SVENH Sven Heinicke <[email protected]> SWMCD Steven McDougall <[email protected]> SZECK Steve Zeck <[email protected]> TBOUTELL Thomas Boutell <[email protected]> TBRADFUTE Todd Bradfute <[email protected]> TEKE Torsten Ekedahl <[email protected]> TERDOEST Hugo WL ter Doest <[email protected]> TIBBS Jason Tibbitts <[email protected]> TIMB Tim Bunce <[email protected]> TIMPOTTER Tim Potter <[email protected]> TIMPX Tim Goodwin <[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]> TOMFA Tom Fawcett <[email protected]> TOMH Tom Horsley <[email protected]> TOMHUGHES Tom Hughes <[email protected]> TOMZO Tom Zoerner <[email protected]> TRIAS Fernando Trias <[email protected]> TRIEMER Thomas Riemer <[email protected]> TROCKIJ Jim Trocki <[email protected]> TSANDERS Tony Sanders <[email protected]> TSPIN Tom Spindler <[email protected]> TWENRICH Thomas Wenrich <[email protected]> TYEMQ Tye McQueen <[email protected]> ULPFR Ulrich Pfeifer <[email protected]> UWEH Uwe Hollerbach <[email protected]> VKHERA Vivek Khera <[email protected]> VMSML The VMSPerl Mailing list Mail subscription requests to maintainer at <[email protected]> WATANABE Hirofumi Watanabe <[email protected]> WAYNEDAV Wayne Davison <[email protected]> WIN32 The Perl for Win32 Mailing list Mail to [email protected] with body "subscribe Perl-Win32 <your-address>" WINKO Winfried Koenig <[email protected]> WPMOORE W. Phillip Moore <[email protected]> WPS William Setzer <[email protected]> WRW William R Ward <[email protected]> WSCOT Wayne Scott <[email protected]> WTOMPSON Wayne Tompson <[email protected]> WYTAN Wei-Yuen Tan <[email protected]> YASU Yasushi Saito <[email protected]> YENYA Jan "Yenya" Kasprzak <[email protected]> YLU Luke Y. Lu <[email protected]> YVESP Yves Paindaveine <[email protected]> ZENIN Byron Brummer <[email protected]>
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |