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:
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.
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.
Do you have any modules you could share with others? For example, you may have some perl4 scripts from which generally useful, and reusable, modules could be extracted. There may be many people who would find your work very useful. Please play your part and contribute to the Perl community where you can. [ end of sermon :-]
Help save the world! Please submit new entries and updates to us so we can keep this list up-to-date. Send the new or corrected entry by email to modules@perl.org (or modules@franz.ww.tu-berlin.de in case the above doesn't work). Please do not send code to this address. Instead upload your module, once registered, to the PAUSE site for forwarding on to CPAN. See section 2, especially 2.6 and 2.11.
Disclaimer: The content of this document is simply a collection of information gathered from many sources with little or no checking. There are NO warranties with regard to this information or its use.
A little background information... I (Tim) created the Module List in August 1994 and maintained it manually till April 1996. By that time Andreas had implemented the Perl Authors Upload Server (PAUSE) and it was happily feeding modules through to the CPAN archive sites (see http://www.cpan.org/modules/04pause.html for details). Since PAUSE held a database of module information which could be maintained by module authors it made sense for the module listing part of the Module List to be built from that database. In April 1996 Andreas took over the automatic posting of the Module List and I now maintain the other parts of the text. We plan to add value to the automation over time.
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.
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.
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.
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() variablesFunction 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 callIt 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.
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.
Having 57 modules all called Sort will not make life easy for anyone (though having 23 called Sort::Quick is only marginally better :-). Imagine someone trying to install your module alongside many others. If in any doubt ask for suggestions in comp.lang.perl.modules or modules@perl.org .
Please use a nested module name to informally group or categorise a module, e.g., placing a sorting module into a Sort:: category. A module should have a very good reason not to have a nested name. Please avoid using more than one level of nesting for module names (packages or classes within modules can, of course, use any number).
Module names should begin with a capital letter. Lowercase names are reserved for special modules such as pragmas (e.g., lib and strict).
Note that module names are not related to class hierarchies. A module name Foo::Bar does not in any way imply that Foo::Bar inherits from Foo. Nested names are simply used to provide some useful categorisation for humans. The same is generally true for all package names.
Since the CPAN is huge and growing daily, it's essential that module authors choose names which lend themselves to browsing. That means minimizing acronyms, cute names, and jargon. Also, don't make up a new top level category unless you have a good reason; please choose an already-existing category when possible. Send mail to modules@perl.org before you upload, so we can help you select a name.
If you insist on a name that we consider inappropriate, we won't prevent you from uploading your module -- but it'll remain in your "author" directory and won't be directly visible from CPAN/modules/by-module.
We appreciate the efforts of the contributors who have helped make the CPAN the world's largest reusable code repository. Please help us enhance it by working with us to choose the best name possible.
If you are developing a suite of related modules/classes it's good practice to use nested classes with a common prefix as this will avoid namespace clashes. For example: Xyz::Control, Xyz::View, Xyz::Model etc. Use the modules in this list as a naming guide.
If adding a new module to a set, follow the original author's standards for naming modules and the interface to methods in those modules.
If developing modules for private internal or project specific use, that will never be released to the public, then you should ensure that their names will not clash with any future public module. You can do this either by using the reserved Local::* category or by using an underscore in the top level name like Foo_Corp::*.
To be portable each component of a module name should be limited to 11 characters. If it might be used on DOS then try to ensure each is unique in the first 8 characters. Nested modules make this easier.
The best way to know for sure, and pick up many helpful suggestions, is to ask someone who knows. The comp.lang.perl.modules Usenet newsgroup is read by just about all the people who develop modules and it's generally the best place to ask first. If you need more help then try modules@perl.org .
All you need to do is post a short summary of the module, its purpose and interfaces. A few lines on each of the main methods is probably enough. (If you post the whole module it might be ignored by busy people - generally the very people you want to read it!)
Don't worry about posting if you can't say when the module will be ready - just say so in the message. It might be worth inviting others to help you, they may be able to complete it for you!
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.
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.
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: 3.28 $=~/\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.
It's good idea to post an announcement of the availability of your module to the comp.lang.perl.announce Usenet newsgroup. This will at least ensure very wide once-off distribution.
If not using PAUSE you should place the module into a major ftp archive and include details of it's location in your announcement. Some notes about ftp archives: Please use a long descriptive file name which includes the version number. Most incoming directories will not be readable/listable, i.e., you won't be able to see your file after uploading it. Remember to send your email notification message as soon as possible after uploading else your file may get deleted automatically. Allow time for the file to be processed and/or check the file has been processed before announcing its location.
FTP Archives for Perl Modules:
Follow the instructions and links on
http://www.cpan.org/modules/04pause.html
or upload to:
and notify upload@pause.kbx.de .
By using the PAUSE WWW interface you can ask the Upload Server to mirror your modules from your ftp or WWW site into your own directory on CPAN. Please remember to send us an updated entry for the Module list!
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:
It is an important part of the namespace concept that the module list maintainers do not guarantee to you that somebody else won't use the, say, Foo::Bar namespace. The upload area is not censored except for abuse. People are free to upload any modules they like. Instead, there are several levels of protection for your namespaces:
a) The most important is the module list which actually lists and proclaims your namespace.
b) The second is the indexing mechanism of the CPAN. Modules are indexed on a first-come-first-serve basis. The module namespace that is uploaded for the first time ever gets indexed, but not the module of the second one who tries to use the same namespace.
c) As the whole process is trying to benefit the community, all parties are subject to a wider monitoring within the community. This is sometimes referred to as security by visibility.
d) So the next level of namespace protection is the common sense. Your own common sense. Help to save the world. If you get the impression that something goes wrong with regard to namespaces, please write to modules@perl.org and let them know.
e) The perhaps most interesting namespace protection is provided by the perl symbol table itself. A namespace Foo:: is just a package name and its relationship to a namespace Foo::Bar:: is not predetermined whatsoever. The two namespaces can be closely or loosely related or not related at all, but what's most important, they can be writen by different authors who may work rather independently from each other. So if you have registered any namespace, it does not mean that you own the whole namespace tree that starts there. If you are registered as the contact for Foo::Bar, you are not necessarily also associated with Foo::Bar::Baz.
f) In a few rare cases the module list people restrict indexing of certain categories. For example: DBI::* under the control of Tim Bunce Sun::* under the control of Sun Microsystems
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.
Name DSLI Description Info ------------- ---- -------------------------------------------- ----- Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI
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.
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!
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
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
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 Protect bdpf declare subs private or member JDUNCAN Safe SdcO Restrict eval'd code to safe subset of ops MICB Softref bdcf Extension for weak/soft referenced SVs ILYAZ
Exporter:: ::Import Rdpn Alternate symbol exporter GARROW ::Options adpO Extends Exporter to handle use-line options YSTH ::PkgAlias adpf Load a module into multiple namespaces JDPORTER
Symbol:: ::Table RdpO OO interface to package symbols GARROW
Test Sdpf Utilities for writing test scripts JPRIT
Test:: ::Harness Supf Executes perl-style tests P5P
B aucO The Perl Compiler MICB O aucO Perl Compiler frontends MICB
B:: ::Fathom bdpO Estimate the readability of Perl code KSTAR ::Graph bdpr Perl Compiler backend to diagram OP trees SMCCAM ::LexInfo bdcO Show info about subroutine lexical variables DOUGM ::Size bdcO Measure size of Perl OPs and SVs DOUGM ::TerseSize bdpO Info about ops and their (estimated) size DOUGM
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:: ::Reload Rdpf Reloads files in %INC based on timestamps JPRIT
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
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
Carp:: ::Assert adpf Stating the obvious to let the computer know MSCHWERN ::CheckArgs Rdpf Check subroutine argument types GARROW
Coy Rdpn Like Carp - only prettier DCONWAY
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 ::PPPort bdcn Portability aid for your XS code KJALB ::Peek adcf Peek at internal representation of Perl data ILYAZ ::RegExp adcO Access perl internal regex functions ILYAZ ::SmallProf Rdpf Line-by-line profiler ASHTED ::Symdump RdpO Perl symbol table access and dumping ANDK ::TraceFuncs adpO Trace funcs by using object destructions JOEHIL ::TraceLoad Rdpf Traces the loading of perl source code JPRIT
Exception:: ::Cxx Rd+f Cause perl to longjmp using C++ exceptions JPRIT
Perf:: Performance measurement other than benchmarks ::ARM a Application Response Measurement BBACKER
Usage bupr Type and range checking on subroutine args JACKS
Rcs adcf Alternate RCS interface (see VCS::RCS) CFRETER VCS ampO Generic interface to Version Control Systems LBROCARD
VCS:: ::CVS Rdpo Interface to GNU's CVS RSAVAGE ::PVCS i PVCS Version Manager (intersolv.com) BMIDD ::RCS idpf Interface layer over RCS (See also Rcs) RJRAY ::RCE idcf Perl layer over RCE C API RJRAY
Include adpO Parse C header files for use in XS GBARR Make adpO Makefile parsing, and 'make' replacement NI-S
ClearCase idcf Environment for ClearCase revision control BRADAPP ClearCase:: ::Ct Rdpf Generic cleartool wrapper DSB
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Env Supf Alias environment variables as perl vars P5P Errno cdpf Constants from errno.h EACCES, ENOENT etc GBARR Fcntl Sdcf Defines fcntl() constants (see File::Lock) JHI Ioctl adcf ioctl(2) constants JPRIT POSIX SupO An interface to most (all?) of POSIX.1 P5P Shell Supf Run shell commands transparently within perl P5P
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 RdpO 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 ::Spawn Rdpf Run external programs GARROW ::SyncExec cdpf Spawn processes but report exec() errors ROSCH ::times adpf By-name interface to process times function TOMC
GTop bdcO Perl interface to libgtop DOUGM
Schedule:: See also Schedule:: in chapter 23 ::At Rd OS independent interface to the at command JOSERODR
Quota Rdcf Disk quota system functions, local & remote TOMZO
Sys:: ::AlarmCall Rupf Timeout on any sub. Allows nested alarms JACKS ::Hostname Supf Implements a portable hostname function P5P ::Sysconf bdpf Defines constants for POSIX::sysconf() NI-S ::Syslog Supf Provides same functionality as BSD syslog P5P
Note: The Sys:: namespace is considered harmful as it is giving no clue about which system. Placing additional modules into this namespace is discouraged.
Be:: ::Attribute Rd+f Manipulate BeOS BFS MIME file attributes TSPIN ::Query Rd+f Query a BeOS file system TSPIN
FreeBSD:: ::SysCalls cdcf FreeBSD-specific system calls GARY
Mac:: Macintosh specific modules ::AppleEvents bmcO AppleEvent manager and AEGizmos MCPL ::AssistantFrames RdpO Easy creation of assistant dialogs GBAUER ::Components bmcO (QuickTime) Component manager MCPL ::Files bmcO File manager MCPL ::Gestalt bmcO Gestalt manager: Environment enquiries MCPL ::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::AppleEvents:: ::Simple Rdph Simple access to Mac::AppleEvents CNANDOR
Mac::Apps:: ::Anarchie RdpO Control Anarchie 2.01+ CNANDOR ::Launch Rdpf MacPerl module to launch / quit apps CNANDOR ::MacPGP RdpO Control MacPGP 2.6.3 CNANDOR ::PBar RdpO Control Progress Bar 1.0.1 CNANDOR
Mac::Comm:: ::OT_PPP RdpO Control Open Transport PPP / Remote Access CNANDOR
Mac:: ::Glue bdpO Control apps with AppleScript terminology CNANDOR
Mac::OSA:: ::Simple Rdph Simple access to Mac::OSA CNANDOR
MSDOS:: ::Attrib bdcf Get/set DOS file attributes in OS/2 or Win32 CJM ::Descript bdpO Manage 4DOS style DESCRIPT.ION files CJM ::SysCalls adcf MSDOS interface (interrupts, port I/O) DMO
MVS:: ::VBFile bdpf Read MVS VB (variable-length) files GROMMEL
NeXTStep:: ::NetInfo idcO NeXTStep's NetInfo (like ONC NIS) PGUEN
Netware:: ::NDS cd+O Interface to Novell Directory Services KTHOMAS ::Bindery cd+O Interface to Novell Bindery mode calls KTHOMAS
OS2:: ::ExtAttr RdcO (Tied) access to extended attributes ILYAZ ::FTP bncf Access to ftplib interface ILYAZ ::PrfDB RdcO (Tied) access to .INI-style databases ILYAZ ::REXX RdcO Access to REXX DLLs and REXX runtime ILYAZ ::UPM bncf User Profile Management ILYAZ
Riscos:: ::* i Namespace for Risc-OS (Acorn et.al.) RISCOSML
SGI:: ::SysCalls cdcf SGI-specific system calls AMOSS ::GL adcr SGI's Iris GL library AMOSS ::FM adcr SGI's Font Management library AMOSS
Solaris:: ::MapDev bdpf Maps sdNN disk names to cNtNdN disk names ABURLISON ::Kstat adcO Access kernel performance statistics ABURLISON ::Kmem idcf Read values from the running kernel ABURLISON ::MIB idcO Access STREAMS network statistics ABURLISON ::NDD idcO Access network device statistics ABURLISON
Unix:: ::ConfigFile adpO Abstract interfaces to Unix config files SSNODGRA ::Processors bdcO Interface to per-processor information WSNYDER ::Syslog i Interface to syslog functions in a C-library MHARNISCH ::UserAdmin Rdpf Interface to Unix Account Information JZAWODNY
VMS:: ::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
PDA:: ::Pilot amcO Interface to pilot-link library KJALB ::PilotDesktop i Managing Pilot Desktop databases software JWIEGLEY
Hardware:: ::Simulator adpf Simulate different pieces of hardware GSLONDON
Device:: ::SerialPort bdpO POSIX clone of Win32::SerialPort BBIRTH ::SVGA c SVGA Graphic card driver SCOTTVR
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 RdcO Generic support for socket usage SPIDB ::Goofey RdpO Communicate with a Goofey server GOSSAMER ::Hotline RdpO Interface to the Hotline protocol JSIRACUSA ::ICAP adpO Interface to ICAP Protocol (Internet-Draft) KJOHNSON ::ICB bdpO ICB style chat server interface JMV ::ICQ cmpO NEVER FINISHED - NOT UNDER DEVELOPMENT GOSSAMER ::IMAP adpO Interface to IMAP Protocol (RFC2060) KJOHNSON ::IRC cdpO Internet Relay Chat interface DSHEPP ::Ident RdpO Performs ident (rfc1413) lookups JPC ::Inet RdcO Internet (IP) socket usage SPIDB ::Interface 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 bmhf Secure Socket Layer (based on OpenSSL) SAMPO ::TCP RdcO TCP-specific socket usage SPIDB ::TFTP cdpf Interface to Trivial File Transfer Protocol GSM ::Telnet adpO Interact with TELNET port or other TCP ports JROGERS ::Time adpf Obtain time from remote machines GBARR ::Traceroute bdpO Trace routes HAG ::UDP RdcO UDP-specific socket usage SPIDB ::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
Net::IMAP:: ::Simple bdpO Only implements the basic IMAP features JPAF
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 ::Locker RdpO Shared semaphore locks across a network WSNYDER ::Mmap i Interface to Unix's mmap() shared memory MICB ::Open2 Supf Open a process for both reading and writing P5P ::Open3 Supf Like IPC::Open2 but with error handling P5P ::Session adpO remote shell session mgr; wraps open3() STEVEGT ::Signal Rdpf 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
NetPacket:: ::ARP adpO Address Resolution Protocol TIMPOTTER ::Ethernet adpO Ethernet framed data TIMPOTTER ::IGMP adpO Internet Group Management Protocol TIMPOTTER ::IP adpO Internet Protocol TIMPOTTER ::TCP adpO Transmission Control Protocol TIMPOTTER ::UDP adpO User Datagram Protocol TIMPOTTER
Proxy i Transport-independent remote processing MICB Proxy:: ::Tk ? Tk transport class for Proxy (part of Tk) MICB
IPChains RdcO Create and Manipulate ipchains JESSICAQ SNMP RdcO Interface to the UCD SNMP toolkit GSM TFTP bdpO Interface to TFTP (rfc1350) GSM ToolTalk adcr Interface to the ToolTalk messaging service MARCP
SNMP:: ::Monitor adpO Accounting and graphical display JWIED
Mon:: ::Client RdpO Network monitoring client TROCKIJ ::SNMP RdpO Network monitoring suite TROCKIJ
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
Modem:: Vgetty bdpO Interface to voice modems using vgetty YENYA
ControlX10:: ::CM10 RmpO Control unit for X10 modules BBIRTH ::CM17 RmpO inexpensive RF transmit-only X10 BBIRTH
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 ::Geometry adpf 2D and 3D algorithms GMCCAR ::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 Rdpf Math using scientific significant figures SBECK ::Spline RdpO Cubic Spline Interpolation of data JARW ::Trig bdpf tan asin acos sinh cosh tanh sech cosech JARW ::TrulyRandom i based on interrupt timing discrepancies GARY ::VecStat Rdpr Some basic numeric stats on vectors 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
Algorithm:: ::Diff bdpr Diff (also Longest Common Subsequence) MJD ::Permute a Easy and fast permutation EDPRATOMO
Algorithm::Numerical:: ::Shuffle Rdph Knuth's shuffle algorithm ABIGAIL ::Sample RDph Knuth's sample algorithm ABIGAIL
PDL amcf Perl Data Language - numeric analysis env PERLDL
PDL:: ::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 ::Options Rdph Provides hash options handling for PDL TJENNESS ::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
Scalar:: ::Util bdcf Scalar utilities (dualvar reftype etc) GBARR
List:: ::Util bdcf List utilities (eg min, max, reduce) GBARR
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 ::Interval idpO Lightweight normalised interval data type KTORP ::Language adpO Multi-language date support GBARR ::Manip Rdpf Complete date/time manipulation package SBECK ::Parse Rdpf ASCII Date parser using regexp's GBARR ::Time idpO Lightweight normalised datetime data type TIMB
Time:: ::Avail Rdpf Calculate min. remaining in time interval PSANTORO ::CTime Rdpf Format Times ala ctime(3) with many formats MUIR ::DaysInMonth Rdpf Returns the number of days in a month MUIR ::HiRes Rdcf High resolution time, sleep, and alarm DEWEG ::JulianDay Rdpf Converts y/m/d into seconds MUIR ::Local Supf Implements timelocal() and timegm() P5P ::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 ::Hebrew cdpO Hebrew calendar conversion/manipulation YSTH ::RCM i Russell Calendar Manager HTCHAPMAN
Tie:: ::Hash Supr Base class for implementing tied hashes P5P ::Scalar Supr Base class for implementing tied scalars P5P ::Array c Base class for implementing tied arrays CHIPS ::CPHash bdpO Case preserving but case insensitive hash CJM ::Cache Mdpr In memory size limited LRU cache CHAMAS ::DB_Lock Rdpr Tie DB_File with automatic locking KWILLIAMS ::DBI RdpO Tie hash to a DBI handle LDS ::Dir adpr Tie hash for reading directories GBARR ::File adpr Tie hash to files in a directory AMW ::FileLRUCache bdph File based persistent LRU cache SNOWHARE ::Handle RdpO Base class for implementing tied filehandles STBEY ::HashDefaults adpr Let a hash have default values JDPORTER ::IxHash RdpO Indexed hash (ordered array/hash composite) GSAR ::ListKeyedHash Rdpr Use lists to key multi-level hashes SNOWHARE ::Mem adcO Bind perl variables to memory addresses PMQS ::Multidim adpr "tie"-like multidimensional data structures JDPORTER ::OffsetArray adpr Tie one array to another, with index offset JDPORTER ::Quick i Simple way to create ties TIMB ::RndHash bdpO choose a random key of a hash in O(1) time DFAN ::SecureHash RdpO Enforced encapsulation of Perl objects DCONWAY ::SentientHash cdpr Tracks changes to nested data structures ANDREWF ::ShadowHash adpO Merge multiple data sources into a hash RRA ::ShiftSplice i Defines shift et al in terms of splice LWALL ::SubstrHash SdpO Very compact hash stored in a string LWALL ::TextDir Rdpr ties a hash to a directory of textfiles KWILLIAMS ::Watch bdpO Watch variables, run code when read/written LUSOL
Tie::Cache:: ::LRU adpr A Least-Recently Used cache MSCHWERN
Class:: ::Eroot RdpO Eternal Root - Object persistence DMR ::Multimethods Rdpf A multiple dispatch mechanism for Perl DCONWAY ::NamedParms MdpO A named parameter accessor base class SNOWHARE ::ParmList MdpO A named parameter list processor SNOWHARE ::Singleton bdpO Implementation of a "Singleton" class ABW ::Template Rdpr Struct/member template builder DMR ::Tree Mdpo C++ class hierarchies & disk directories RSAVAGE ::TOM RmpO Transportable Object Model for perl JDUNCAN
Object:: ::Info Rupf General info about objects (is-a, ...) JACKS ::Transaction bdpO Transactions on serialized HASH files MUIR
POE:: Perl Object Environment ::Kernel RdpO An event queue that dispatches events RCAPUTO ::Session RdpO state machine running on POE::Kernel events RCAPUTO
MOP i Meta Object Protocol (Tool collection) ORTALO SOOP RdpO Safe Object Oriented Programming GARROW
Ref RdpO Print, compare, and copy perl structures MUIR
Sort:: ::ArbBiLex Rdpf sort functions for arbitrary sort orders SBURKE ::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
FreezeThaw bdpf Convert arbitrary objects to/from strings ILYAZ Persistence:: ::Object adpO Store Object definitions with Data::Dumper VIPUL 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 Tangram RmpO Object persistence in relational databases JLLEROY WDDX RdpO Allows distributed data exchange via XML GUELICH
Data:: ::Check cdpO Checks values for various data formats KENHOLM ::DRef adph Nested data access using delimited strings EVO ::Dumper RdpO Convert data structure into perl code GSAR ::Flow RdpO Acquire data based on recipes ILYAZ ::Locations RdpO Handles nested insertion points in your data STBEY ::Reporter RdpO Ascii Report Generator RVAZ ::Walker adpO Navigate through Perl data structures JNOLAN
Tree:: ::Base cdpO Defines a basic binary search tree MSCHWERN ::Fat Rdcf Embeddable F-Tree algorithm suite JPRIT ::Smart cdpO Splay tree, fastest for commonly accessed ke MSCHWERN ::Trie bdpO An implementation of the Trie data structure AVIF
DFA:: ::Command Mdpo Discrete Finite Automata command processor RSAVAGE ::Kleene R Kleene's Algorithm for DFA STBEY ::Simple cdpO An "augmented transition network" RANDYM
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- DBI amcO Generic Database Interface (see DBD modules) DBIML
DBIx:: Extensions to the DBI ::HTMLView cdpO Creating web userinterfaces to DBI dbs HAKANARDO ::Recordset bmpO Access/Modify DBI handles via Arrays/Hashs GRICHTER ::Table bdpO OO access to DBI database tables DLOWE ::Tree adpO Expand self-referential table into a tree BJEPS
DBD:: ::ASAny adcO Adaptive Server Anywhere Driver for DBI SMIRNIOS ::Altera bdpO Altera SQL Server for DBI - pure Perl code DSOUFLIS ::CSV adcO SQL engine and DBI driver for CSV files JWIED ::DB2 adcO DB2 Driver for DBI MHM ::Empress adcO Empress RDBMS Driver SWILLIAM ::FreeTDS adcO DBI driver for MS SQLServer and Sybase SPANNRING ::SearchServer cdcO PCDOCS/Fulcrum SearchServer Driver for DB SHARI ::Illustra bmcO Illustra Driver for DBI PMH ::Informix amcO Informix Driver for DBI JOHNL ::Informix4 amcO DBI driver for Informix SE 4.10 GTHYNI ::Ingres bmcO Ingres Driver for DBI HTOUG ::Multiplex a Spreading database load acrross servers TIMB ::ODBC amcO ODBC Driver for DBI DBIML ::Oracle 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 bmpf Ingperl emulation interface for DBD::Ingres HTOUG
Sybase:: ::Async cdpO interact with a Sybase asynchronously WORENKD ::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
Ace i Interface to ACEDB (Popular Genome DB) LDS BBDB a Insiduous big brother database LAXEN Datascope Rdcf Interface to Datascope RDBMS DANMQ LotusNotes i Interface to Lotus Notes C/C++ API MBRECH 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 PgSQL adpO "Pure perl" interface to PostgreSQL GTHYNI 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
AnyDBM_File Sup Uses first available *_File module above P5P BerkeleyDB Rdco Interface to Berkeley DB 2 & 3 PMQS CDB_File adc Tie to CDB (Bernstein's constant DB) files TIMPX DBZ_File adc Tie to dbz files (mainly for news history) IANPX 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
DbFramework:: ::Attribute adpO Relational attribute class PSHARPE ::DataModel adpO Relational data model/schema class PSHARPE ::DataType adpO Attribute data type class PSHARPE ::ForeignKey adpO Relational foreign key class PSHARPE ::Key adpO Relational key class PSHARPE ::Persistent adpO Persistent object class PSHARPE ::PrimaryKey adpO Relational primary key class PSHARPE ::Table adpO Relational table/entity class PSHARPE ::Util adhO Utility functions/methods PSHARPE
DTREE cdcf Interface to Faircom DTREE multikey ISAM db JWAT Fame adcO Interface to FAME database and language TRIAS NetCDF bmcr Interface to netCDF API for scientific data SEMM Stanza i Text format database used by OSF and IBM JHI VDBM i Client/server-layers on top of DBM files RAM
MARC bmpO MAchine Readable Catalog (library bib. data) PERL4LIB MARC:: ::XML ampO MAchine Readable Catalog / XML Extension PERL4LIB
Metadata:: ::Base bdpO Base metadata functionality DJBECKETT ::IAFA bdpO IAFA templates metadata DJBECKETT ::SOIF bdpO Harvest SOIF metadata DJBECKETT
OLE:: ::PropertySet aupO Property Set interface MSCHWARTZ ::Storage aupO Structured Storage / OLE document interface MSCHWARTZ
Spreadsheet:: ::Excel i Interface to Excel spreadsheets RRAWLINGS ::Lotus i Interface to Lotus 1-2-3 spreadsheets RRAWLINGS
X500:: ::DN Mdpo X500 Distinguished Name parser RSAVAGE
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 ::Prompt adpf Prompt a user ALLENS ::Query Rdpf Intelligent user prompt/response driver AKSTE ::ReadKey Rdcf Read keystrokes and change terminal modes KJALB ::ReadLine Sdcf Common interface for various implementations ILYAZ ::Screen RdpO Basic screen + input class (uses Term::Cap) MRKAE ::Size adcf Simple way to get terminal size TIMPX ::TUI bdpf User interface based on Term::ReadLine SBECK
Term::ReadLine:: ::Perl RdpO GNU Readline history and completion in Perl ILYAZ ::Gnu RdcO GNU Readline XS library wrapper HAYASHI
Cdk RdcO Collection of Curses widgets GLOVER Curses adcO Character screen handling and windowing WPS NCurses cdcO Curses using the ncurses package WPS PV bmpO PerlVision curses windowing (OO widgets etc) AGUL PerlMenu Mdpf Curses-based menu and template system SKUNZ
Curses:: ::Forms cdpO Form management for Curses::Widgets CORLISS ::Widgets Rdpf Assorted widgets for rapid interfaces CORLISS
Emacs cdcf Support for Perl embedded in GNU Emacs JTOBEY Emacs:: ::Lisp bdch Perl-to-Emacs-Lisp glue JTOBEY
Tk bmcO Object oriented version of Tk v4 TKML
See the Tk module list at http://www.cpan.org/modules/by-module/Tk/tk-modlist.html
Gtk bdcO binding of the Gtk library used by GIMP KJALB
Gtk:: ::Dialog adph Simple interface to create dialogs in Gtk ALISTAIRC
Fresco cd+O Interface to Fresco (post X11R6 version) BPETH Glade adph Glade/Gtk+/Gnome UI source code generator DMUSGR Gnome bdcO Bindings to the Gnome Desktop Toolkit KJALB Qt ad+O Interface to the Qt toolkit AWIN Sx Rdcf Simple Athena widget interface FMC
X11:: ::Auth adpO Read and handle X11 '.Xauthority' files SMCCAM ::Fvwm RdcO interface to the FVWM window manager API RJRAY ::Keysyms adpf X11 key symbols (translation of keysymdef.h) SMCCAM ::Lib bdcO X11 library interface KENFOX ::Motif bdcO Motif widget set interface KENFOX ::Protocol adpO Raw interface to X Window System servers SMCCAM ::Toolkit bdcO X11 Toolkit library interface KENFOX ::Wcl bdcO Interface to the Widget Creation Library JHPB ::XEvent bdcO provides perl OO acess to XEvent structures MARTINB ::XFontStruct bdcO provides perl OO access to XFontStruct MARTINB ::XRT adcO XRT widget set (commercial) interface KENFOX ::Xbae adcO Xbae matrix (spreadsheet like) interface KENFOX ::Xforms bdcO provides the binding to the xforms library MARTINB ::Xpm adcf X Pixmap library interface KENFOX
GUI:: ::Guido i bd+O Communicate with objects in a GUI TBRADFUTE
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Clips adpO Interface to the Expert System Clips MSULLIVAN Rc cdcO Perl interface for the Rc shell JPRIT SICStus adcO Interface to SICStus Prolog Runtime CBAIL
C:: ::DynaLib bdcO Allows direct calls to dynamic libraries JTOBEY ::Scan RdpO Heuristic parse of C files ILYAZ
Tcl RdcO Complete access to Tcl MICB ::Tk RdcO Complete access to Tk *via Tcl* MICB
Language:: ::Prolog adpO An implementation of Prolog JACKS ::PGForth i Peter Gallasch's Forth implementation PETERGAL
Fortran:: ::NameList adpf Interface to FORTRAN NameList data SGEL
ShellScript:: ::Env adpO Simple sh and csh script generator SVENH
Verilog:: ::Pli Rdch Access to simulator functions WSNYDER ::Language Rdpf Language support, number parsing, etc WSNYDER ::Parser RdpO Language parsing WSNYDER ::SigParser RdpO Signal and module extraction WSNYDER
FFI cdcf Low-level Foreign Function Interface PMOORE
FFI:: ::Library cdcO Access to functions in shared libraries PMOORE
FFI::Win32:: ::Typelib idcO FFI taking definitions from a type library PMOORE ::COM idcO Access to COM using VTBL interface PMOORE
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 Rdpf Parse directory listings GAAS ::Lock adcf File locking using flock() and lockf() JHI ::LckPwdF adcf Lock and unlock the passwd file ALLENS ::Path Supf File path and name utilities P5P ::Rsync i Copy efficiently over the net and locally LEAKIN ::Signature cdpf Heuristics for file recognition JHI ::Slurp bdpf Read/write/append files quickly MUIR ::Sort Rdpf Sort a file or merge sort multiple files CNANDOR ::Spec bdpO Handling files and directories portably KJALB ::Sync bdcf POSIX/*nix fsync() and sync() CEVANS ::Tail bdpO A more efficient tail -f MGRABNAR ::MultiTail adpO Tail multiple files SGMIANO ::chmod Mdpf Allows for symbolic chmod notation PINYAN ::lockf bdcf Interface to lockf system call PHENSON ::stat Supf A by-name interface for the stat function TOMC
Filesys:: ::AFS RucO AFS Distributed File System interface NOG ::Df Rdpr Disk free based on Filesys::Statvfs IGUTHRIE ::DiskFree adpO OS independant parser of the df command ABARCLAY ::Statvfs Rdcf Interface to the statvfs() system call IGUTHRIE ::dfent adpf By-name interface TOMC ::mntent adpf By-name interface TOMC ::statfs adpf By-name interface TOMC
LockFile:: Application-level locking facilities ::Lock i Lock handles created by LockFile::* schemes RAM ::Manager i Records locks created by LockFile::* RAM ::Scheme i Abstract superclass for locking modules RAM ::Simple adpr Simple file locking mechanism RAM
Stat:: ::lsMode Rdpf Translate mode 0644 to -rw-r--r-- MJD
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- String:: ::Approx Rdpf Approximate string matching and substitution JHI ::BitCount adpf Count number of "1" bits in strings WINKO ::CRC Rdcf Cyclic redundency check generation MUIR ::CRC32 R?c? ZMODEM-like CRC32 generation of strings as w SOENKE ::Edit adpf Assorted handy string editing functions TOMC ::Parity adpf Parity (odd/even/mark/space) handling WINKO ::RexxParse Rdph Perl implementation of REXX 'parse' command BLCKSMTH ::Scanf Rdpf Implementation of C sscanf function JHI ::ShellQuote adpf Quote string for safe passage through shells ROSCH
Text:: ::Abbrev Supf Builds hash of all possible abbreviations P5P ::Bastardize cdpO corrupts text in various ways AYRNIEU ::Bib RdpO Module moved to Text::Refer ERYQ ::BibTeX adcO Parse BibTeX files GWARD ::CSV adpO Manipulate comma-separated value strings ALANCITT ::CSV_XS adpO Fast 8bit clean version of Text::CSV JWIED ::DelimMatch RdpO Match (possibly nested) delimited strings NWALSH ::FillIn RdpO Fill-in text templates KWILLIAMS ::Format RdpO Advanced paragraph formatting GABOR ::Graphics RdpO Graphics rendering toolkit with text output SFARRELL ::Invert cdpO Create/query inv. index of text entities NNEUL ::Macros adpO template macro expander (OO) JDPORTER ::Metaphone bdcf A modern soundex. Phonetic encoding of words MSCHWERN ::MetaText bdpO Text processing/markup meta-language ABW ::Morse cdpf convert text to/from Morse code JONO ::ParseWords Supf Parse strings containing shell-style quoting HALPOM ::Refer RdpO Parse refer(1)-style bibliography files ERYQ ::SimpleTemplate adpO Template for dynamic text generation TAIY ::Soundex Sdhf Convert a string to a soundex value MARKM ::Tabs Sdpf Expand and contract tabs ala expand(1) MUIR ::TeX cdpO TeX typesetting language input parser ILYAZ ::Template MdpO Expand template text with embedded perl MJD ::Vpp RdpO Versatile text pre-processor DDUMONT ::Wrap Sdpf Wraps lines to make simple paragraphs MUIR
Text::Wrap:: ::Hyphenate a Like Text::Wrap with ability to hyphenate MJD
Text:: ::Balanced Mdpf Extract balanced-delimiter substrings DCONWAY ::Parser adpO String parser using patterns and states PATM ::Trie adpf Find common heads and tails from strings ILYAZ
Text:: ::English adpf English language stemming IANPX ::German adpf German language stemming ULPFR ::Stem bdpf Porter algorithm for stemming English words IANPX
Lingua:: ::DetectCharset a Heuristics to detect coded character sets JNEYSTADT ::Ispell adpf Interface to the Ispell spellchecker JDPORTER ::Stem Rdph Word stemmer with localization SNOWHARE
Lingua:: ::EN i Namespace for English language modules ::PT bupf Namespace for Portugese language modules EGROSS
Lingua::EN:: ::Cardinal i Convert numbers to words HIGHTOWE ::Hyphenate Rdpf Syllable based hyphenation DCONWAY ::Infinitive Mdpo Find infinitive of a conjugated word RSAVAGE ::Inflect Mdpf English singular->plural and "a"->"an" DCONWAY ::Ordinal i Convert numbers to words HIGHTOWE ::Squeeze bdpf Shorten english text for Pagers/GSM phones JARIAALTO ::Syllable a Estimate syllable count in words GREGFAST
Lingua::RU:: ::Charset anpf Detect/Convert russian character sets. FARBER
ERG Rdpf An extensible report generator framework PHOENIXL
PostScript:: ::Barcode bdpf Various types of barcodes as PostScript COLEMAN ::Basic bdpO Basic methods for postscript generation STWIGGER ::Document bdpO Generate multi-page PostScript SHAWNPW ::Elements bdpO Objects for shapes, lines, images SHAWNPW ::Font RdpO analyzes PostScript font files JV ::FontInfo RdpO analyzes Windows font info files JV ::FontMetrics RdpO analyzes Adobe Font Metric files JV ::Metrics bdpO Font metrics data used by PS::TextBlock SHAWNPW ::Resources RdpO loads Unix PostScript Resources file JV ::TextBlock bdpO Objects used by PS::Document SHAWNPW
Font:: ::AFM RdpO Parse Adobe Font Metric files GAAS ::TFM adpO Read info from TeX font metric files JANPAZ ::TTF bdpO TrueType font manipulation module MHOSKEN
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 MdpO Recursive descent parser generator DCONWAY ::Yapp RdpO Generates OO LALR parser modules FDESAR
Search:: ::Dict Supf Search a dictionary ordered text file P5P ::InvertedIndex bdpO Inverted index database support SNOWHARE
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
XML RmhO Large collection of XML related modules XMLML
The namespace for low level-level interface modules below XML is documented in a separate XML module list that is available at http://www.cpan.org/modules/by-module/XML/perl-xml-modules.html It is discouraged to put higher level XML modules into the XML namespace to avoid bloat.
RTF:: ::Base i Classes for Microsoft Rich Text Format NI-S ::Document a Generate Rich Text (RTF) Files RRWO ::Generator i Next Generation of RTF::Document RRWO ::Group a Base class for manipulating Rich Text Format RRWO ::Parser a Base class for parsing RTF files PVERD
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 FrameMaker:: ::FDK idcO Interface to Adobe FDK PEASE ::MIF cdpO Parse and Manipulate FrameMaker MIF files PEASE ::Control cdpO Control a FrameMaker session PEASE
Marpa cd+O Context Free Parser JKEGL
Chatbot:: ::Eliza RdpO Eliza algorithm encapsulated in an object JNOLAN
Quiz:: ::Question cdpO Questions and Answers wrapper RFOLEY
Template:: ::* RdpO Extensive Toolkit for template processing ABW
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Getopt:: ::Declare MdpO An easy-to-use WYSIWYG command-line parser DCONWAY ::EvaP Mdpr Long/short options, multilevel help LUSOL ::Gnu adcf GNU form of long option handling WSCOT ::Help bdpf Yet another getopt, has help and defaults IANPX ::Long Sdpr Advanced option handling JV ::Mixed Rdpf Supports both long and short options CJM ::Regex ad Option handling using regular expressions JARW ::Simple MdpO A simple-to-use interface to Getopt::Long RSAVAGE ::Std Supf Implements basic getopt and getopts P5P ::Tabular adpr Table-driven argument parsing with help text GWARD
ConfigReader cdpO Read directives from configuration file AMW Resources bdpf Application defaults management in Perl FRANCOC IniConf Read/Write INI-Style configuration files RBOW
App:: General application development tools ::Config bdpO Configuration file mgmt ABW
CfgTie adph Framework for tieing system admin tasks RANDYM
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 ::Date adpf Month/weekday names in various languages JHI ::Langinfo cdcf The <langinfo.h> API JHI ::Language Rdpf ISO 639 two letter language codes NEILB ::Msgcat RdcO Access to XPG4 message catalog functions CHRWOLF ::PGetText bdpf What GNU gettext does, written in pure perl MSHOYHER ::gettext Rdcf Multilanguage messages PVANDRY
Unicode:: ::String RdcO String manipulation for Unicode strings GAAS ::Map8 RdcO Convert between most 8bit encodings GAAS
No:: ::Dato Rdpf Norwegian stuff GAAS ::KontoNr Rdpf Norwegian stuff GAAS ::PersonNr Rdpf Norwegian stuff GAAS ::Sort Rdpf Norwegian stuff GAAS ::Telenor Rdpf Norwegian stuff GAAS
Cz:: ::Cstocs adpO Charset reencoding JANPAZ ::Sort adpO Czech sorting JANPAZ ::Speak bdpf number, etc. convertor to the Czech language YENYA
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/verify PGP/GnuPG signatures, securely RRA
DES adcf DES encryption (libdes) EAYNG Des adcf DES encryption (libdes) MICB GSS adcO Generic Security Services API (RFC 2078) MSHLD
Digest:: ::MD5 Rdch MD5 message digest algorithm GAAS ::MD2 Rdch MD2 message digest algorithm GAAS ::SHA1 cdch NIST SHA message digest algorithm UWEH ::HMAC Rdph HMAC message integrity check GAAS
Crypt:: ::CBC adpO Cipherblock chaining for Crypt::DES/IDEA LDS ::DES a DES encryption (libdes) GARY ::ElGamal bdpO ElGamal digital signatures and keys VIPUL ::IDEA a International Data Encryption Algorithm GARY ::Keys adpO Management system for cryptographic keys VIPUL ::Passwd bdc? Perl wrapper around the UFC Crypt LUISMUNOZ ::PasswdMD5 bdc? Interoperable MD5-based crypt() function LUISMUNOZ ::PRSG a 160 bit LFSR for pseudo random sequences GARY ::Random bdpO Cryptographically Strong Random Numbers VIPUL ::Rot13 cdpO simple encryption often seen on usenet AYRNIEU ::RSA bdpO RSA encryption, decryption, key generation VIPUL ::Twofish Rdpf Twofish Encryption Algorothm NISHANT ::UnixCrypt Rdpf Perl-only implementation of crypt(3) MVORL
OpenCA Rdpf Tools for running a Certification Authority MADWOLF
Authen:: ::ACE adcO Interface to Security Dynamics ACE (SecurID) DCARRIGAN ::Krb4 RdcO Interface to Kerberos 4 API JHORWITZ ::Krb5 RdcO Interface to Kerberos 5 API JHORWITZ ::PAM bdch Interface to PAM library NIKIP ::TacacsPlus adcO Authentication on tacacs+ server MSHOYHER ::Ticket adpO Suite consisting of master/client/tools JSMITH
RADIUS:: ::Dictionary bdpO Object interface to RADIUS dictionaries CHRMASTO ::Packet bdpO Object interface to RADIUS (rfc2138) packets CHRMASTO ::UserFile bdpO Manipulate a RADIUS users file OEVANS
SSLeay:: ::* cdcO Interface to SSLeay EAYNG
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- URI:: ::Attr ampO Stores attributes in the URI name space LWWWP ::Escape Rmpf General URI escaping/unescaping functions LWWWP ::URL RmpO Uniform Resource Locator objects LWWWP
CGI:: ::Authent Mdpf request the HTTP authentification JENDA ::Base RmpO Complete HTTPD CGI Interface class CGIP ::BasePlus RmpO Extra CGI::Base methods (incl file-upload) CGIP ::CList bdpO Manages hierarchical collapsible lists PEARCEC ::Cache adpf Speed up slow CGI scripts by caching BROCSEIB ::Carp cmpf Drop-in Carp replacement for CGI scripts CGIP ::Debug adpn show CGI debugging data JONAS ::Deurl Mdpr decode the CGI parameters JENDA ::Enurl Mdpr encode the CGI parameters JENDA ::Formalware Mdpo Convert an XML file to a suite of CGI forms RSAVAGE ::Imagemap adpO Imagemap handling for specialized apps MIKEH ::LogCarp Rdph Error, log, bug streams, httpd style format MIKEKING ::MiniSvr RmpO Fork CGI app as a per-session mini server CGIP ::Minimal MdpO A micro-sized CGI handler SNOWHARE ::MxScreen i Screen multi-plexer framework RAM ::Out adpf Buffer CGI output and report errors MUIR ::Persistent adpO Transparent State Persistence in CGI scripts VIPUL ::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 ::SpeedyCGI bdcn Run CGI scripts persistenly HORROCKS ::Validate adpO Advanced CGI form parser ZENIN ::XMLForm adpO Create/query XML for forms MSERGEANT
HTML:: ::Base adpO Object-oriented way to build pages of HTML GAND ::CalendarMonth bdpO Calendar Months as HTML::Element trees MSISK ::EP adpO Modular, extensible Perl embedding JWIED ::Element ampO Representation of a HTML parsing tree LWWWP ::ElementGlob bdpO Manipulate multiple elements at once MSISK ::ElementRaw bdpO Graft HTML strings on an HTML::Element MSISK ::ElementSuper bdpO Various HTML::Element extensions MSISK ::ElementTable bdpO HTML::Element table manipulation MSISK ::Embperl Rmcf Embed Perl in HTML GRICHTER ::Entities Rmpf Encode/decode HTML entities LWWWP ::Formatter ampO Convert HTML to plain text or Postscript LWWWP ::HeadParser RmpO Parse <HEAD> section of HTML documents LWWWP ::LinkExtor RmpO Extract links from HTML documents LWWWP ::Mason bdpO Build sites from modular Perl/HTML blocks JSWARTZ ::ParseForm i Parse and handle HTML forms via templates NMONNET ::Parser RmpO Basic HTML Parser LWWWP ::QuickCheck cdpf Fast simple validation of HMTL text YLU ::Simple bdpf Simple functions for generating HTML TOMC ::SimpleParse RdpO Bare-bones HTML parser KWILLIAMS ::Stream RdpO HTML output stream ERYQ ::Subtext adpO Text substitutions on an HTML template KAELIN ::Table bnpO Write HTML tables via spreadsheet metaphor STLACY ::TableLayout bdpO an extensible OO layout manager SFARRELL ::Template RmpO A simple templating system allow Perl to con SAMTREGAR ::TokeParser RmpO Alternative HTML::Parser interface LWWWP ::Validator bdpO HTML validator utilizing nsgmls and libwww SAIT
HTTP:: ::Cookies RmpO Storage of cookies LWWWP ::Date Rmpf Date conversion for HTTP date formats LWWWP ::Daemon RmpO Base class for simple HTTP servers LWWWP ::Headers RmpO Class encapsulating HTTP Message headers LWWWP ::Message RmpO Base class for Request/Response LWWWP ::Request RmpO Class encapsulating HTTP Requests LWWWP ::Response RmpO Class encapsulating HTTP Responses LWWWP ::Status Rmpf HTTP Status code processing LWWWP ::Negotiate Rmpf HTTP content negotiation LWWWP
HTTP::Request:: ::Common Rmpf Functions that generate HTTP::Requests LWWWP ::Form RdpO Generates HTTP::Request objects out of forms GBAUER
HTTPD:: ::UserAdmin bdpO Management of server user databases LDS ::GroupAdmin bdpO Management of server group databases LDS ::Authen bdpO Preform HTTP Basic and Digest Authentication LDS ::Config cdpO Management of server configuration files LDS ::Access cdpO Management of server access control files LDS
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 RmpO Libwww-perl LWWWP LWP:: ::Conn ampO LWPng stuff LWWWP ::MediaTypes Rmpf Media types and mailcap processing LWWWP ::Parallel RmpO Allows parallel http and ftp access with LWP MARCLANG ::Protocol RmpO LWP support for URL schemes (http, file etc) LWWWP ::RobotUA RmpO A UserAgent for robot applications LWWWP ::Simple Rmpf Simple procedural interface to libwww-perl LWWWP ::UA ampO LWPng stuff LWWWP ::UserAgent RmpO A WWW UserAgent class LWWWP
MIME:: ::Base64 Rdhf Encode/decode Base 64 (RFC 2045) GAAS ::QuotedPrint Rdpf Encode/decode Quoted-Printable GAAS ::Decoder 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 ::Types adpr Returns the MIME type for a filename/suffix OKAMOTO ::Words cdpf Encode/decode RFC1522-escaped header strings ERYQ
Apache RmcO Interface to the Apache server API DOUGM
For a concise listing of Apache modules see http://www.cpan.org/modules/by-module/Apache/apache-modlist.html
Netscape:: ::Cache bdpO Access Netscape cache files SREZIC ::History bdpO Class for accessing Netscape history DB NEILB ::HistoryURL bdpO Like a URI::URL, but with visit time NEILB ::Server adcO Perl interface to Netscape httpd API BSUGARS
HyperWave:: ::CSP cdpO Interface to HyperWave's HCI protocol GOSSAMER
WebFS:: ::FileCopy Rdpf Get, put, copy, delete files located by URL BZAJAC
WebCache:: ::Digest bdpf Internet Cache Protocol (RFCs 2186 and 2187) MHAMILTON
Authorizenet bdpf Get Credit Card Info from authorizenet DLINCOLN BizTalk RdpO Microsoft BizTalk Framework Toolkit SIMONJ Catalog bmpO Manage/display resources catalog (URLs etc.) LDACHARY CGI_Lite MnpO Light-weight interface for fast apps SHGUN FCGI Rdcr Fast CGI SKIMO WING RmhO Apache based IMAP/NNTP Gateway MICB WOMP cdpO CGI App Dev Suite: authen/state/html SPADKINS CIPP RdpO Preprocessor for embedding Perl, SQL in HTML JRED
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Event bmch fast, generic event loop JPRIT
Event:: ::Stats Rmcf Collects statistics for Event JPRIT ::tcp bmpO TCP session layer library JPRIT
EventServer RupO Triggers objects on i/o, timers & interrupts JACKS ::Functions Rupf Utility functions for initializing servers JACKS ::*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 ::ProcessTop Rmpf Gives a top-like control screen for Event JPRIT
Time:: ::Warp Rmcf Change the start and speed of Event time JPRIT
Spool:: ::Queue i Generic printer spooling facilities RAM
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Compress:: ::Bzip2 Rdcf Interface to the Bzip2 compression library AZEMGI ::LZO Rdcf Interface to the LZO compression library MFX ::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 Rdpf Mapping functions between character sets GAAS ::SciEng bdpO Convert numbers with scientific notation COLINK ::Translit MdpO String conversion among many character sets GENJISCH ::UU bdpf UUencode and UUdecode ANDK ::UUlib Rdcr Intelligent de- and encode (B64, UUE...) MLEHMANN
AppleII:: ::Disk bdpO Read/write Apple II disk image files CJM ::ProDOS bdpO Manipulate files on ProDOS disk images CJM ::DOS33 i Manipulate files on DOS 3.3 disk images CJM ::Pascal i Manipulate files on Apple Pascal disk images CJM
Archive:: ::Tar adpO Read, write and manipulate tar files CDYBED
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- GD adcO GIF editing/painting/manipulation LDS OpenGL adcf Interface to OpenGL drawing/imaging library FIJI PGPLOT Rdof PGPLOT plotting library - scientific graphs KGB PixDraw adcO Drawing and manipulating true color images KSB GIFgraph RdpO Package to generate GIF charts, uses GD MVERB
VRML RdpO VRML methods independent of specification HPALM
VRML:: ::VRML1 RdpO VRML methods with the VRML 1.0 standard HPALM ::VRML2 RdpO VRML methods with the VRML 2.0 standard HPALM ::Color Rdpf color functions and X11 color names HPALM ::Base RdpO common basic methods HPALM ::Browser i A complete VRML viewer LUKKA
Graphics:: ::Libplot RdcO Binding for C libplotter plotting library JLAPEYRE ::Plotter Rd+O Binding for C++ libplotter plotting library MAKLER ::Simple idcO Simple drawing primitives NEERI ::Turtle idp Turtle graphics package NEERI
Image:: ::Colorimetry cdpO transform colors between colorspaces JONO ::Grab RdpO Grabbing images off the Internet MAHEX ::Magick RdcO Read, query, transform, and write images JCRISTY ::ParseGIF RnpO Parse GIF images into component parts BENL ::Size Rdpf Measure size of images in common formats RJRAY
Chart:: ::Base RdpO Business chart widget collection NINJAZ ::Gdchart bdch based on Bruce V's C gdchart distribution MHEMPEL ::GnuPlot RdpO Access to gnuplot library NPESKETT ::Graph Rmpr front-end to gnuplot and XRT MHYOUNG ::PNGgraph RdpO Package to generate PNG graphs, uses GD.pm SBONDS ::Pie adpO Implements "new Chart::Pie()" KARLON ::Plot bdcO Graph two-dimensional data (uses GD.pm) SMORTON ::XMGR Rdph interface to XMGR plotting package TJENNESS
MPEG:: ::MP3Info bdpf Manipulate / fetch info from MP3 audio files CNANDOR
Xmms bdcO Interactive remote control shell for xmms DOUGM Xmms:: ::Config bdcO Perl interface to the xmms_cfg_* API DOUGM ::Remote bdcO Perl interface to the xmms_remote_* API DOUGM ::Plugin i Perl interface to the xmms plugin APIs DOUGM
Gimp Mmch Rich interface to write plugins for The Gimp MLEHMANN T3D cdpO Realtime extensible 3D rendering GJB ThreeD i Namespace root for all kinds of 3D modules ADESC RenderMan a Manipulate RenderMan objects GMLEWIS
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 ::Ezmlm bdpO Object methods for ezmlm mailing lists GHALSE ::Field RdpO Base class for handling mail header fields GBARR ::Folder adpO Base-class for mail folder handling KJOHNSON ::Freshmeat RdpO Parses newsletters from http://freshmeat.net ASPIERS ::Header RdpO Manipulate mail RFC822 compliant headers GBARR ::Internet adpO Functions for RFC822 address manipulations GBARR ::MH adcr MH mail interface MRG ::Mailer adpO Simple mail agent interface (see Mail::Send) GBARR ::POP3Client RdpO Support for clients of POP3 servers SDOWD ::Send adpO Simple interface for sending mail GBARR ::Sender MdpO socket() based mail with attachments, SMTP JENDA ::Sendmail Rdpf Simple platform independent mailer MIVKOVIC ::UCEResponder i Spamfilter CHSTROSS ::Util adpf Mail utilities (for by some Mail::* modules) GBARR
News:: ::Article adpO Module for handling Usenet articles AGIERTH ::Gateway ampO Mail/news gatewaying, moderation support RRA ::NNTPClient bdpO Support for clients of NNTP servers RVA ::Newsrc adpO Manage .newsrc files SWMCD ::Scan cdpO Gathers and reports newsgroup statistics GBACON
NNTP:: ::Server i Support for an NNTP server JOEHIL
NNML:: ::Server adpO An simple RFC 977 NNTP server ULPFR
IMAP:: ::Admin RdpO IMAP Administration EESTABROO
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- AtExit Rdpr atexit() function to register exit-callbacks BRADAPP Callback RdpO Define easy to use function callback objects MUIR Memoize bdpr Automatically cache results of functions MJD Religion adpr Control where you go when you die()/warn() KJALB
Hook:: ::PrePostCall adpO Add actions before and after a routine PVERD
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 ::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 ::React RdpO OO Expect-like communication GARROW ::STREAMS cdcO Methods for System V style STREAMS control NI-S ::Scalar RdpO I/O handle to read/write to a string ERYQ ::ScalarArray RdpO I/O handle to read/write to array of scalars ERYQ ::Seekable cdpO Methods for seekable input/output handles GBARR ::Select adpO Object interface to system select call GBARR ::Socket cdpO Methods for socket input/output handles GBARR ::Stty 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:: ::Agent i A general logging framework RAM ::Topics Rdpf Control flow of topic based logging messages JARW
Expect RdpO Close relative of Don Libes' Expect in perl AUSCHUTZ
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Win32:: ::AbsPath Rdpf relative paths to absolute, understands UNCs JENDA ::ASP Rdpr Makes PerlScript ASP development easier MSERGEANT ::AdminMisc Rdcf Misc admin and net functions DAVEROTH ::COM cd+O Access to native COM interfaces JDB ::ChangeNotify bdcO Monitor changes to files and directories CJM ::Event bdcO Use Win32 event objects for IPC CJM ::EventLog adcf Interface to Win32 EventLog functions WIN32 ::FileOp Mdpf file operations + fancy dialogs, INI files JENDA ::FileType RdpO modify Win32 fily type mapping JENDA ::FUtils bdcf Implements missing File Utility functions JOCASA ::GD RdcO Win32 port of the GD extension (gif module) DAVEROTH ::GuiTest adcf SendKeys, FindWindowLike and more ERNGUI ::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 Rm+h Interface to OLE Automation JDB ::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 RdpO 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:: ::CommPort RdpO Win32 Serial functions/constants/interface BBIRTH ::Console cdcf Win32 Console Window functions/consts TYEMQ ::File cdcf Win32 file/dir functions/constants TYEMQ ::Registry adcf Win32 Registry functions/constants TYEMQ ::WinStruct cdcf Routines for Win32 Windowing data structures TYEMQ ::Window cdcf Win32 Windowing functions/constants TYEMQ
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Archie Rdpf Archie queries via Prospero ARDP protocol GBOSS BnP RdhO Build'n'Play all-purpose batch install. tool STBEY Bundle i Namespace reserved for modules collections ANDK CPAN RdpO Perl Archive browse and download ANDK Gedcom bmpO Interface to genealogy Gedcom files PJCJ 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
Astro:: ::SLA Rdcf Interface to SLALIB positional astronomy lib TJENNESS ::Time Rdpf General time conversions for Astronomers CPHIL ::Coord Rdpf Transform telescope and source coordinates CPHIL ::Misc Rdpf Miscellaneous astronomical routines CPHIL
Bio:: ::* i Utilities for molecular biology SEB
Business:: ::CreditCard Rdpf Credit card number check digit test JONO ::ISBN RdpO Work with ISBN as objects BDFOY ::ISSN adpO Object and functions to work with ISSN SAPAPO
Chemistry:: ::Elements RdpO Working with Chemical Elements BDFOY ::Isotopes idpO extends Elements to deal with isotopes BDFOY
Remedy:: ::AR adcO Interface to Remedy's Action Request API RIK
ARS Mmhh 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:: ::CD bdcO Perl interface to libcdaudio (cd + cddb) DOUGM ::Sox i sox sound library as one or more modules NI-S
MIDI RdpO 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
FAQ:: ::OMatic RdpO A CGI-based FAQ/help database maintainer JHOWELL
Geo:: ::METAR Rdpf Process Aviation Weather (METAR) Data JZAWODNY ::Storm_Tracker i Retrieves tropical storm advisories CARPENTER ::WeatherNOAA Rdpf Current/forecast weather from NOAA MSOLOMON
Games:: ::Dice cdpf Simulates rolling dice PNE ::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
Watchdog:: ::Service adpO Look for service in process table PSHARPE ::HTTPService adpO Test status of HTTP server PSHARPE ::MysqlService adpO Test status of Mysql server PSHARPE
Schedule:: See also Schedule:: in chapter 4 ::Match adpf Pattern-based crontab-like schedule TAIY
Name DSLI Description Info ------------ ---- -------------------------------------------- ---- Resolute:: ::RAPS cd+O Interface to Resolute Software's RAPS CHGOETZE
AltaVista:: ::SearchSDK cdcf Perl Wrapper for AltaVista SDK functionality JTURNER
Real:: ::Encode i Interface to Progressive Network's RealAudio KMELTZ
MQSeries RdcO IBM's MQSeries messaging product interface WPMOORE PQI cdcO Perl Queuing Interface, to MQSeries, MSMQ SIMONJ R3 bdcO Interface to SAP R/3 using RFCSDK SCHOEN
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.
Contacts: P5P
Malcolm Beattie < mbeattie@sable.ox.ac.uk > has done extensive work in this area and is folding this work into Perl now for version 5.005 or 5.006.
Contacts: JHI
It also aims to encourage module authors to consider any standards that might relate to the modules they are developing.
Standard Description Module Name -------- ----------- ----------- RFC821 Simple Mail Transfer Protocol Net::SMTP RFC822 Internet Mail Header Mail::Header RFC822 Internet Mail addresses Mail::Address RFC867 Daytime Protocol Net::Time RFC868 Time Protocol Net::Time RFC959 File Transfer Protocol Net::FTP RFC977 A minimal NNTP Server NNML::Server RFC977 Network News Transfer Protocol Net::NNTP RFC1035, RFC1183, RFC1706 Domain names, implementation & specification Net::DNS RFC1123 Date conversion routines HTTP::Date RFC1319 MD2 Message-Digest Algorithm Digest::MD2 RFC1321 MD5 Message-Digest Algorithm Digest::MD5 RFC1350 Trivial File Transfer Protocol TFTP, Net::TFTP RFC1413 Identification Protocol Net::Ident RFC1592 Simple Network Management Protocol SNMP, Net::SNMP RFC1738 Uniform Resource Locators URI::URL RFC1777 Lightweight Directory Access Protocol Net::LDAP RFC1861 Simple Network Pager Protocol Net::SNPP RFC1866 Encode/decode HTML entities in a string HTML::Entities RFC1939 Post Office Protocol 3 Net::POP3 RFC1950-1952 ZLIB, DEFLATE, GZIP Compress::Zlib RFC1960 String Representation of LDAP Search Filters Net::LDAP::Filter RFC2045-2049 MIME - Multipurpose Internet Mail Extensions MIME::* RFC2138 Terminal server authentification and accting RADIUS RFC2229 Dictionary Server Net::Dict
Standard Description Module Name -------- ----------- ----------- X.209 Basic Encoding Rules for ASN.1 Convert::BER
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