Welcome to the Comprehensive Perl Archive Network!
Last updated May 24, 1997

The CPAN contains the collected wisdom of the entire Perl community: hundreds of Perl utilities, several books' worth of documentation, and the entire Perl distribution. If it's written in Perl, and it's helpful and free, it's in the CPAN.

The CPAN architecture is the creation of Jarkko Hietaniemi and Andreas König. Andreas and Tim Bunce jointly maintain the The Perl 5 Module List, which is like this document but has more about creating modules and less about what existing modules do.

This document is CPAN.html, a "front end" to the CPAN. Part of this document is about what's in the CPAN and part is about how you can contribute to this worldwide effort by submitting utilities for the rest of the world to use. But the bulk of this document is descriptions of all of the modules in the CPAN. If you've added your module to the CPAN, or would like to change one of these descriptions, please notify me, Jon Orwant. I am editor of The Perl Journal and will mention your module in the New Modules column if it is of general interest to the Perl community. (If you just want to install Perl, you can grab the Perl distribution from the CPAN.

What's a module?

You'll find a technical explanation in the perlmod documentation, but here's the gist: a module is a freely available Perl 5 utility that you can download and use from your Perl 5 programs. Many modules are single Perl files ending in .pm. Others are more complex, and need to be compiled on your machine, typically because they make use of C under the hood.

There are so many Perl modules that people have a hard time finding them: if you're looking for a module that will let you execute snippets of code on someone else's computer in a secure manner, you might not know that you're looking for the Penguin module, simply because you don't normally associate flightless aquatic birds with encrypted, digitally signed Perl programs. (Well, now you do.)

Another difficulty is that some modules depend on others. While the CPAN administrators, module writers, and Makemaker gurus have tried to make downloading and installing modules as easy as possible (and see Andreas König's CPAN.pm module for a way to automate the process), it's a little frustrating to install a sleek new module only to find that it depends on something you don't have. That's where CPAN bundles come in: a bundle is a colllection of modules that comprise a cohesive unit, like the libwww bundle, which contains lots of modules to help you tangle with the World Wide Web.

If you clicked on the above links for perlmod, Penguin, CPAN.pm, or libwww, you (hopefully!) were transported to directories containing the appropriate files. Which machine served them to you? I don't know. It depends on where you're connecting from. That's the beauty of Tom Christiansen's CPAN multiplexer: it automagically reroutes you to a nearby CPAN site, for some definition of "nearby." (If it doesn't work, perhaps the site is busy, and you should try again.) If you don't like the multiplexer's choice of site, select one from the list of CPAN sites.

What's on the CPAN?

The CPAN has a dozen-odd top-level entries.

IF YOU DON'T HAVE PERL INSTALLED ON YOUR SYSTEM, familiarize yourself with the src/ directory first. In particular, consult doc/relinfo/INSTALL.html for a Web-based installation tutorial.

If you're on a Unix or vaguely Unix-like system, you'll want to compile Perl into an executable binary by following the directions in src/5.0. If you're on a Macintosh, DOS, or Windows system, you'll want to simply install the precompiled binaries in CPAN/ports.

A successful Perl installation results in two things: a Perl executable binary (often /usr/bin/perl or /usr/local/bin/perl on Unix systems) and the Perl library (often /usr/local/lib/perl5 on Unix systems). So don't think that you can simply copy /usr/bin/perl from one machine to another - you need the library too.

IF YOU'RE SEARCHING FOR A PARTICULAR UTILITY, browse through the module listing later in this document.

There are more powerful CPAN search utilities: the WAIT, which uses approximate matching to search module documentation, and the CPAN Search Engine, which lets you throw boolean queries against CPAN module names, files and directories, author names, and the Perl documentation.

You can also use your computer's searching capabilities to find resources in this document. I've written short descriptions of all the Perl modules on the CPAN, so if you're searching for some Perl code to create GIFs, a quick search for "GIF" will yield the GD module, which you'll then be able to find under modules/by-module/GD or via the links provided with the description.

The easiest way to install a module on the CPAN is to use the CPAN.pm module. Of course, you'll need to install that the hard way, so installation instructions follow:

To install a utility, you may first need to uncompress it. Many versions look like someutil.1.01.tar.gz, which means that you need to do two things:

Once you've read the README in that directory, and you've decided you want to install the module, what then? Let's back up:

Say you want to install the latest CGI module. In this file, you can find its description by searching for CGI (or by clicking on the above link). That description will lead you to modules/by-modules/CGI on the CPAN, in which you'll find CGI.pm-2.29.tar.gz. 2.29 is the higest number there, so you know it's the latest version.

These instructions are intended for Unix computers only. Your success will vary with other operating systems. If you can add instructions for other operating systems, send me mail.

	

        1) Download CGI.pm-2.29.tar.gz to your computer.

	2) Unzip the file by typing "gzip -d CGI.pm-2.29.tar.gz", 

		yielding CGI.pm-2.29.tar.

	3) Untar that file by typing "tar xf CGI.pm-2.29.tar", 

		yielding a CGI.pm-2.29 directory.

        4) Enter that directory by typing "cd CGI.pm-2.29".

        5) type "perl Makefile.PL"

	        This creates a Makefile, which tells the "make"

		program on your computer how to compile CGI.pm.

        6) type "make"

	   	This compiles CGI.pm.

	5) type "make test"

           	This tests CGI.pm to ensure that it's been 

		successfully compiled.

	6) type "make install"

		This completes the installation by copying CGI.pm

		to your /usr/local/lib/perl5 (or equivalent).

	        You might need to be superuser to do this.

After the "make install", you can delete the CGI.pm-2.29.tar file and the CGI.pm-2.29 directory on your computer.

If you don't have access to the "make" program, you might still be able to install the module. After step 3 above, look around the newly created directory. If you don't see any .xs files, you're probably OK -- all you have to do is copy the .pm files (or directories containing .pm files) to wherever your Perl installation stores library files. Where's that? Sorry, I can't tell you -- it varies from system to system. Your Perl might know. Try this:

	perl -e 'use Config; print $Config{installprivlib}'

or
	perl -e 'foreach (@INC) { print qq[$_\n] }'

If you choose the second incantation, the shortest directory (excluding ".") is probably the one you want. Some modules will contain embedded documentation: the instructions are in the same file as the Perl program. That's what's going on when you see lines like =head1 or =cut. This documenation is in a format called "POD" (for Plain Old Documentation), designed to be easily readable and translatable into whatever format you'd prefer. Use one of the programs in the pod2x directory (in your Perl distribution) to extract the documentation and convert to FrameMaker, HTML, a Unix man page, TeXinfo, or just plain text.

IF YOU'RE LOOKING FOR AN ANSWER TO A PERL QUESTION, the first thing to do is read The Perl FAQ. There are other, more specialized, FAQs in the FAQs directory.

IF YOU'D LIKE TO READ THE PERL DOCUMENTATION, good for you! Pick an appropriate directory in docs/manual/html. I recommend starting with perl.html, which contains links to all other sections of the documentation.



PERL MODULES

You can find all of these in the CPAN, in the modules/by-module directory. A "::" means that you'll have to look a level deeper. For instance, you can find News::NNTPClient in modules/by-module/News/NNTPClient.

The CPAN has 22 categories of modules:

02_Perl_Core_Modules: Alias, AutoLoader, B, Carp, Config, diagnostics, DynaLoader, English, Exporter, Filter, integer, less, lib, O, Opcode, overload, Pod, Safe, SelfLoader, SetDualVar, sigtrap, strict, subs, Symbol, UNIVERSAL, vars

03_Development_Support: AutoSplit, Benchmark, DataFlow, Devel, ExtUtils, FindBin, Include, Make, Test, Usage

04_Operating_System_Interfaces: BSD, Env, Fcntl, Ioctl, OS2, POSIX, Proc, Quota, SGI, Shell, Sys

05_Networking_Devices_Inter_Process: Comm.pl, DCE, IPC, Net, Parallel, Ptty, SNMP, Socket

06_Data_Type_Utilities: Array, Class, Data, Date, FreezeThaw, Math, Object, PDL, Ref, Set, ShowTable, Sort, Statistics, Storable, Tie, Time

07_Database_Interfaces: AnyDBM_File, DBD, DBI, DB_File, DBZ_File, CDB_File MLDBM, Msql, ObjStore, Oraperl, Pg, SDBM_File, Sprite, Sybase, Sybperl, Xbase

08_User_Interfaces: Cdk, Curses, perlmenu, Sx, Term, Tk

09_Interfaces_to_Other_Languages: C, c_plus_plus, Language, Tcl

10_File_Names_Systems_Locking: Cwd, File

11_String_Processing_Language_Text_Processing: Font, Search, Parse, SGMLS, String, Text, Wais

12_Option_Argument_Parameter_Processing: ConfigReader, Getopt, IniConf, Resources

13_Internationalization_and_Locale: I18N

14_Authentication_Security_Encryption: Crypt, Des, MD5, PGP, SHA

15_World_Wide_Web_HTML_HTTP_CGI: Apache, CGI, FCGI, HTML, HTTP, HTTPD, LWP, MIME, Netscape, URI, WWW

16_Server_and_Daemon_Utilities: EventServer, Server

17_Archiving_and_Compression: Compress, Convert

18_Images_Pixmap_Bitmap_Manipulation: GD, Graph, Image, OpenGL, PDL, PGPLOT

19_Mail_and_Usenet_News: Mail, News

20_Control_Flow_Utilities: AtExit, Callback, Religion

21_File_Handle_Input_Output: DirHandle, FileCache, FileHandle, IO, Log

22_Microsoft_Windows_Modules: Win32

23_Miscellaneous_Modules: ARS, Agent, Archie, Audio, Bio, Business, CPAN, Logfile, Neural, Penguin, Remedy, Roman, SyslogScan

Module Listing By Category

02_Perl_Core_Modules

Alias - If you use complex data structures or knotty object-oriented programming in Perl, and you're tired of expressions that look like $object->{property}->{attribute}, you can define a variable that means the same thing but looks a lot nicer.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

AutoLoader - For module makers only. Normally, Perl modules are loaded into memory as soon as you execute them. If you want to load them only on demand, use the AutoLoader module. The AutoLoader module is bundled with Perl. Also see the SelfLoader module.

B - The Perl Compiler. Converts your Perl program to a) C, which you can then compile using a C compiler, b) platform-independent bytecode, or c) an executable.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Carp - Better error warnings for your own modules. The warnings are more useful than Perl's regular warnings because they identify where your module was called from. Also see the warn() function. Carp is bundled with Perl.

Config - Whoever compiled Perl for your platform made a lot of choices -- where to put binaries, how many bits your rand() function generates, the name of your operating system, whether your system supports fork(), and so on. You can access all of these values via the Config module, which stores them all in a hash named %Config. The Config module is bundled with Perl.

diagnostics - Makes Perl warnings more verbose. The diagnostics pragma (it's technically not a module) is bundled with Perl.

DynaLoader - If you're a module writer, you probably want to use DynaLoader to automate the dynamic loading of your module. Also see SelfLoader.

English - Tired of all the cryptic variables $_, $', $&, and so on? The English module lets you use English names instead. It's bundled with the Perl distribution.

Exporter - Allows one package to insert ("export") variables and subroutines into another package. The Exporter module is bundled with Perl.

Filter - A collection of "Source Filters," which are programs that preprocess a Perl program before execution. For instance, you can encrypt your Perl programs, but still have them be executable, with the Filter::decrypt module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

integer - Perform calculations using integer-only arithmetic, which is usually much faster. The integer pragma (it's technically not a module) is bundled with Perl.

less - A not-yet-implemented pragma that will allow you to make resource tradeoffs, e.g. CPU cycles for memory.

lib - If you've ever tried to add directories to @INC so that your modules could be found, you probably found out the hard way that you have to do it at compile time, e.g. BEGIN { push @INC, "/u/you/your_new_dir" }. The lib pragma (it's technically not a module) does this for you in a more robust way. It's bundled with recent versions (post 5.002) of Perl.

O - The Perl Compiler. Same as the B module.

Opcode - For gurus only. Functions for manipulating internal Perl opcodes.
Local copy (only if this is a CPAN site!)
Copy from somewhere else
It's now bundled with Perl.

overload - The overload pragma (technically it's not a module) lets you define how operations (e.g. +, ++, *=) work for your objects. It's what you do when you tell Perl how to add two complex numbers: you overload '+' so it does the right thing when it sees a complex number on both side (or either side). The overload pragma is bundled with Perl.

Parse::Lex - An object-oriented generator of lexical analyzers. Use it to create parsers for "little languages" that you create. Documentation in French.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Pod::Simplify - Utilities for converting pod documentation to other formats. Pod (short for Plain Old Documentation) is a simple ASCII-based documentation format that allows Perl programs to contain their own documentation.
Local copy (only if this is a CPAN site!)
Copy from somewhere elsePod::Parser - A base class for parsing and selecting sections of pod documentation. Use this if you want to create your own pod2xyz program. Part of the PodParser bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Pod::Select - Dumps selected sections of raw pod documentation from an input stream. Part of the PodParser bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Pod::Text - Converts pod documentation to formatted ASCII text. Part of the PodParser bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Pod::Usage - Prints usage messages for a Perl script based on its embedded pod documentation. Part of the PodParser bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Safe - The Safe module lets you execute untrusted (or just plain untrustworthy) Perl programs inside a safe "compartment." You define the boundaries of the compartment -- whether the program is able to poke around your filesystem, or launch a denial-of-service attack against your system, or do anything at all.
Local copy (only if this is a CPAN site!)
Copy from somewhere else
It's now bundled with Perl.

SelfLoader - Like the AutoLoader, but used for dynamic loading of Perl functions that are inside your script file. Contrast with AutoLoader, which requires that the Perl functions be separate.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SetDualVar - If you've played with Perl enough, you know there are some variables which can appear as either a number of a string depending on context. The special variable $! is an example. The SetDualVar module lets you bestow this split personality on the scalar variable of your choice.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

sigtrap - Simple signal handling: trap those pesky CTRL-C's. The sigtrap pragma (it's not a module) is bundled with Perl.

strict - The strict pragma (it's not a module) is bundled with Perl. It lets you outlaw certain suspect programming constructs: symbolic references, barewords, and global variables.

subs - Predeclares subroutine names. The subs pragma (it's not a module) is bundled with Perl.

Symbol - Manipulate Perl symbols and their names. The Symbol module is bundled with Perl.

UNIVERSAL - Lets you specify default behavior for all objects in your application.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

vars - Predeclare global variables. The vars pragma (it's not a module) is bundled with Perl. Useful if you're using the "strict" pragma.

03_Development_Support

AutoSplit - For module makers only. AutoLoadable modules typically split their subroutines up into separate, individually loadable files. Module designers can use AutoSplit to do this. It's bundled with Perl. Also see the AutoLoader module.

Benchmark - If you want to see how fast your program is, you can't just time it with a stopwatch. Your computer is busier some moments than others, and so it's the CPU time used by your program that matters, not the total time. The Benchmark module tells you how much CPU time a chunk of Perl code uses. The Benchmark module is bundled with Perl. Also see Devel::DProf.

Data::Flow - Automates ways of manipulating your data structures.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::CallerItem - For gurus only. A Devel::CallerItem object holds all the information about a specific function call on the stack.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::DProf - A Perl profiler. Collects information about the execution time of your program and its individual subroutines.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::Peek - For gurus only. Allows a Perl program to manipulate internal Perl datatypes. See ./docs/manual/html/perlguts.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::Regexp - For gurus only. Allows a Perl program to manipulate Perl's regular expressions as they're represented internally.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::Symdump - Provides convenient methods for inspecting Perl symbol tables. (Symbol tables are hashes that map variable names to values.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::DumpStack - Provides functions to access and dump the current stack of subroutine calls.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::SelfStubber - Generate stub functions for a SelfLoading module. Also see the SelfLoader.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Devel::TraceFuncs - Lets you see when your subroutines are called, and by whom. Useful for timing problem obscured by the debugger.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

ExtUtils::Embed - Utilities for using ("embedding") Perl in C/C++ applications.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

ExtUtils::MakeMaker - Creates Makefiles (directions for the "make" utility) for your module. Useful if you're creating your own modules.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

FindBin - Locates the directory in which your Perl and your program reside.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Include - Lets you use the #defines from C header files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Make - A substitute for the Unix "make" utility. Also see the cons module, in the Make directory.A
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Test::Harness - A simple interface for testing your Perl module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Usage - Check subroutine arguments; an easy way to ensure that, say, argument 3 is an integer, argument 1 is an object belonging to a particular class, that argument 2 isn't equal to 0, and so on.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

04_Operating_System_Interfaces

AppleII - No, no, no, Perl does not run on the Apple II. But this module provides block-level access to Apple II disk images.

BSD::Resource - If your operating system supports the BSD functions getrusage(), getrlimit(), setrlimit(), getpriority(), and/or setpriority(), the BSD::Resource module will make them available to your Perl programs.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Env - On nearly all operating systems, every process runs in some environment. Your path (a.k.a. $PATH) and home directory, for instance, are almost always variables in that environment. You can access your environment (that is, you can find out the values of your environment variables) via the %ENV hash defined by the Env module. The Env module is bundled with Perl.

Fcntl - The Fcntl ("File Control") module provides low level access to system calls for manipulating files (more properly, file descriptors). It comes bundled with Perl.

Ioctl - This module gives your program an easy way of accessing the ioctl (input output control) constants. Only useful on Unix computers.

OS2 - Utilities and binaries for the OS/2 version Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

POSIX - 150 functions that POSIX dictates all good portable operating systems should have. Look here if you always wondered by Perl didn't have a tan() function, or atexit(), or what to do because POSIX sleep() requires an arguments while Perl's sleep() doesn't. The POSIX module is bundled with Perl.

Proc::Forkfunc - A simple, robust wrapper around Perl's fork() function.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Proc::Simple - Provides "process objects" that help you manage background processes.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Quota - Utilities for manipulating disk quotas.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SGI::FM - Now your programs can access the SGI Iris Font Manager. Not very helpful unless you have the SGI Iris Font Manager.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SGI::GL - Now your programs can access the SGI Iris Graphics Library. Not very helpful unless you have the SGI Iris Graphics Library.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SGI::SysCalls - Now your programs can access SGI syscalls. Not very helpful unless you have an SGI.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Shell - Make some shell commands directly available to your Perl program. The Shell module is bundled with Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sys::AlarmCall - Lets you manage alarm() and the ALRM handler a bit better than you could otherwise, and lets you handle nested alarm calls. See alarm(), described in ./docs/manual/html/perlfunc.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sys::OutPut - Defines subroutines "out", "put", "err", "talk", and "debug", all of which behave like printf but keep you from having to type that horrible filehandle (STDOUT or STDERR).
Local copy (only if this is a CPAN site!)
Copy from somewhere else

05_Networking_Devices_Inter_Process

Comm.pl - If you're familiar with the "Expect" system, Comm.pl does many of the same things for Perl: if you want to automate connections to some network service such as FTP or telnet or mail, you can use Comm.pl to wait for certain strings to appear (e.g. "Login:" or "Password:" before sending a string in response. This is similar to the chat2.pl library file bundled with Perl, but is more robust.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

DCE - An object-oriented interface to DCE, the Distributed Computing Environment.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

IPC::SysV - An alternate implementation of the Sys V IPC commands built into Perl. "Sys V IPC" is a commonly used means of interprocess communication -- if you have two processes on the same computer that need to exchange information, you probably want to use one of IPC methods: semaphores, message queues, or shared memory.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

The libnet Bundle - Contains Net::FTP, Net::SMTP, Net::Netrc, Net::Cmd, Net::Domain, Net::Telnet, Net::Time, Net::NNTP, Net::POP3, Net::SNPP. libnet is in the ./utils/modules/Net directory.

The libnet-ext Bundle - Contains Net::Gen, Net::Inet, Net::TCP, and Net::UDP.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Cmd - A network command class used by Net::FTP and Net::SMTP. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Country - Expands Internet country codes (e.g. BE) to English country names (e.g. Belgium).
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::DNS - An interface to DNS (Domain Name System) resolvers. You can perform any type of DNS query with this module. Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Domain - Evaluate the current host's Internet name and domain.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::FTP - Interface to the File Transfer Protocol (FTP). Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Gen - Generic sockets interface. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Ident - Lets you extract the user name from the other end of a TCP/IP connection. (This only works if the remote site is running IDENTD.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Inet - Basic services for socket-based communications. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Netrc - Interface to .netrc files. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::NIS - Interface to NIS, the Network Information Service. (NIS used to be called Yellow Pages before Sun lost a trademark battle.) NIS provides information about user accounts to remote hosts. This makes it possible for all the computers on a network to have the same accounts without local copies of the password file.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::NISPlus - Interface to NIS+, the second generation of NIS. Also see Net::NIS above.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::NNTP - Interface to the Network News Transfer Protocol (NNTP). Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Ping - Lets your programs "ping" a host -- that is, see whether it's up and how much time it takes packets to get there and back.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::POP3 - Interface to the Post Office Protocol (POP3). Also see Mail::POP3Client. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::SMTP - Interface to the Simple Mail Transfer Protocol (SMTP). SMTP is how most Internet computers communicate when they're exchanging mail. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::SNPP - Interface to the Simple Network Pager Protocol (SNPP). Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::SSLeay - An interface to Netscape's SSL (Secure Socket Layer). By Eric A. Young, hence "eay".
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::TCP - Provides TCP communication over sockets. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Telnet - Defines constants for the Telnet protocol. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::Time - Obtains the time from a remote machine. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Net::UDP - Provides UDP communication over sockets. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Parallel::PVM - The Parallel Virtual Machine message passing system. This module is an interface to the PVM library.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Ptty - Run a process on a pseudo-terminal.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SNMP - Interface to the Simple Network Management Protocol (SNMP).
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Socket - Perl already makes socket functions available to you, but many versions don't load all the constants and structures you need. That's what the Socket module is for. The Socket module is bundled with Perl.

06_Data_Type_Utilities

Array::PrintCols - Defines a subroutine to print your arrays in aligned columns. Also see the ShowTable module in the Array directory.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Class::Eroot - An object persistence engine. Useful if you want an object to last longer than one invocation of your application. For object-oriented programmers only.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Class::Template - Constructs "get" and "set" methods for structures and classes. Part of the Class::Eroot module. For object-oriented programmers only.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Data::Dumper - Displays Perl data structures, and writes them to disk as self-contained Perl code.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Data::Flow See DataFlow.

Date::GetDate - Get the current date, accounting for time zones.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Date::DateCalc - Calculates the difference between two dates, or a specified offset from a single date.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Date::Format - Date formatting routines that convert dates into ASCII strings. In the Date/TimeDate package.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Date::Language - Converts dates into different languages. Date::Language is part of the Date/TimeDate package.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Date::Manip - Manipulates dates: differences, offsets, parses. Handles a large number of formats, including "today", "1st thursday in June 1992", and "8:00pm december tenth".
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Date::Parse - Converts date strings into Unix time values. (A Unix time value is the number of seconds since January 1, 1970.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

FreezeThaw - Converts Perl data structures to strings and back.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Amoeba - An implementation of the Downhill Simplex multidimensional method. Use it to compute the local minimum of a function.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Approx - Approximates mathematical functions: you provide the function. Requires Math::Matrix.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::BigInteger - An interface to the bignum library; like the Math::BigInt module bundled with Perl, but faster.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Brent - One-dimenstional function minimization.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Derivative - Numeric 1st and 2nd order differentiation.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::ematica - An interface to the Mathematica library via MathLink. (Mathematica is a symbolic math package) The author can certainly be excused for violating the every-package-begins-with-a-capital-letter rule!
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Fortran - A very simple module that provides two mathematical functions not provided by Perl: log10() and sign().
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Matrix - Matrix functions: multiply, invert, transpose, solve. Each matrix is an array of array references, as you'd expect: the middle element of a 2x2 array is $array[1][1].
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::MatrixReal - Provides a slew of matrix operations optimized for real numbers. Simpler but less featureful than PDL.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Pari - An interface to the PARI library -- you'll need version 1.39 or higher. For more information about PARI, see ftp://megrez.math.u-bordeaux.fr/pub/pari.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::PRSG - Pseudo-random (i.e. deterministic) sequence generation. Use this if you don't trust your builtin random number generator (srand and rand). Also see Math::TrulyRandom.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Spline - Cubic spline interpolation. Requires Math::Derivative.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::Trig - Perl already provides trig functions for you, but the inverse and hyperbolic trigonometric functions require either the POSIX module or Math::Trig.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::TrulyRandom - Random numbers generated from interrupt timing discrepancies. Also see Math::PRSG.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Math::VecStat - Basic numeric operations on vectors, e.g. min(), sum(), average().
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Object::Info - Functions (not methods) that provide information about objects. Think of it as non-object-oriented code for exploring object-oriented code.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

ObjStore - An interface to the ObjectStore object-oriented database; lets you store scalars, hashes, and references. The data can be retrieved from Perl, Java, or C++ speedily.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

PDL - The Perl Data Language, an ongoing effort to manipulate multidimensional data in a space- and time-efficient manner.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Ref - Compare and copy Perl references. Ever wonder if $a and $b were references to the same data structure? Ref tells you.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Set::IntSpan - Manages sets of integers. Good for manipulating very long lists of non-random integers, as it run-length encodes the lists. Optimizied for runs of consecutive integers.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Set::IntegerFast - Manages sets of integers, with an eye toward efficiency. Ideal for computing unions, intersections, and so on.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Set::Scalar - Manages sets of scalars, with an eye toward programmer comfort instead of efficiency.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

ShowTable - Pretty-prints arrays, converting from columnar ASCII data. In the Array/ directory. Also see Array::PrintCols above.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sort::PolySort - Tokenizes and sorts a list of strings. You can specify how each string should be tokenized, and what the comparison function should be.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sort::Versions - Sorts version numbers, which isn't as easy as it sounds. Consider 1.1a < 1.2, 1.1 < 1.1.1, 1.1 < 1.1a, 1.1.a < 1.1a, 1 < a, a < b, 1 < 0002, 1.5 < 1.06.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Statistics::ChiSquare - How random is your data? The Chi Square test tells you.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Statistics::Descriptive - Commonly used statistical methods: mean, variance, standard deviation, least squares fit, and so on.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Statistics::LTU - A module for manipulating Linear Threshold Units, also called perceptrons, which are neural networks with no hidden layers. Also see the Neural module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Storable - Makes your data persistent across application sessions. Handles references to simple data types, but nothing more complex. It's pretty efficient.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tie::Dir - Reading directories via a tied hash. Lets you access and modify the access and modification times of files. See tie(), described in ./docs/manual/html/perltie.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tie::IxHash - Now your hashes can remember the order in which elements were added. See the tie() function. ./docs/manual/html/perltie.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tie::Watch - Place a "watchpoint" on a Perl variable. This lets you identify when a variable is accessed, when it's changed, invoke a Perl/Tk callback when it changes, or trace references to it.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

The Time-Modules Bundle - Contains Time::CTime, Time::JulianDay, Time::ParseDate, Time::Timezone, and Time::DaysInMonth. See their individual listings for further details.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

The TimeDate Bundle - Contains Date::Format, Date::Language, Date::Parse, and Time::Zone. See their individual listings for further details.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::CTime - Format times in many different ways. Part of the Time-modules bundle. Also see the POSIX module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::DaysInMonth - Determine the number of days in a month. It handles leap years, of course. Part of the Time-modules bundles.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::JulianDay - Convert dates to/from the Julian calendar, which is the calendar most Western civiliations used prior to our current calendar, the Gregorian. In the Time-modules bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::ParseDate - Reverses strftime and also understands relative times. In the Time-modules bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::Period - Provides inPeriod(), which determines whether a certain point in time falls within a give period.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::Timezone - Manipulates time zones. In the Time-modules bundle. Also see Time::Zone below.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::HiRes - Finer granularity time, sleep, and alarm: implements usleep(), ularam(), and gettimeofday() in Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Time::Zone - Manipulates time zones. In the TimeDate bundle. Also see Time::Timezone above.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

07_Database_Interfaces

AnyDBM_File - If you want to use a database manager, such as NDBM, Berkeley DB, ODBM, GDBM, or the SDBM supplied with Perl, you'll need this module. It's bundled with Perl.

cdbfile - An interface to the cdb package. cdb is yet another DBM in the spirit of the SDBM, GDBM, and Berkeley DB database managers, except that once you create your database, you can't modify it. The resulting "constant database" yields savings in both space and time.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

DBD - Database Drivers. The Perl DBI initiative has standardized the interface to a number of commercial database engines, so that you can move from, say, Oracle to Sybase with a minimum of effort. You'll find DBD::DB2, DBD::Informix, DBD::Oracle, DBD::QBase, DBD::Sybase, and DBD:mSQL here. Also see the DBI module. If you're looking for a database manager instead of an engine, see the DB_File module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

DBI - The Database Interface. The Perl DBI initiative has standardized the interface to a number of commercial database engines, so that you can move from, say, Oracle to Sybase with a minimum of effort. You'll find DBD::DB2, DBD::Informix, DBD::Oracle, DBD::QBase, DBD::Sybase, and DBD:mSQL inside the DBD module set. If you're looking for a database manager instead of an engine, see the AnyDBM_File module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

DB_File - DBM-style interface to Berkeley DB. See the AnyDBM_File module bundled with Perl. Requires the freely-available Berkeley DB package.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

DBZ_File - Provides access to dbz files, such as the history file in a Usenet news system.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MLDBM - Lets you store multidimensional hash structures in DBM files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Msql - The MsqlPerl interface between Perl and the mSQL relational database management system. Also see the DBD and DBI module sets.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Msql::RDBMS - A relational database management system for Msql, using HTML forms as an interface. Requires CGI-modules, CounterFile, and of course the Msql module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Oraperl - There used to be a Oraperl, a Perl 4 interface to the Oracle database engine. It's since been obsoleted by the DBD for Oracle; see DBD and DBI.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Pg - Postgres is a freely available relational database engine. Pg is a Perl interface to it.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SDBM_File - SDBM is a Simple Database Manager bundled with Perl. There are other, better database managers, but if you're designing a script for portability, SDBM makes you happy because you know that if the user has Perl, he's got SDBM too. SDBM_File, the module that lets you use SDBM, is bundled with Perl.

Sprite - Maniuplates simple text-delimited databases.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sybase::Login - A login widget for Sybase. You'll need both Tk and Sybperl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sybperl - Interface to the Sybase relational database engine. Also see the DBD and DBI module sets.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Xbase - Access to Xbase DBF files and Foxpro IDX and FPT files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

08_User_Interfaces

Cdk - The Curses Development Kit. Includes commonly-asked for utilities like pop-up ASCII menus. Also see the Curses module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Curses - A library for manipulating ASCII graphics.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Curses::DevKit - The same as Cdk.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

perlmenu - Create ASCII menus with Curses.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Sx - A front end to the Athena and Xlib toolkits for X window programming. Simpler than Perl/Tk, but not as fully featured. See the Tk module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::AnsiColor - Provides the escape codes for ANSI text attributes.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::Gnuplot - Low-level drawing routines for the Gnuplot plotting system.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::Info - A simple interface to your system's "tput" utility. If you don't have tput, don't bother with this. If you do, it's an easy way to make your Perl programs print in bold, or in reverse video, or highlighted.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::Query - Generalized question and answer module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::ReadLine - A Perl interface to various "readline" packages, which make command-line editing possible (e.g. Ctrl-A to go to the start of the line, Esc-F to go forward a word). Requires Term::ReadKey.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::ReadLine::Gnu - A Perl interface to the GNU readline library, which supports line editing, history management, and word completion.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::ReadKey - A Perl module for simple terminal control. Non-blocking reads, echo toggling, determining the terminal size, and so on. This module is bundled with some versions of Perl, but not all.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Term::Screen - A Term::Cap based screen positioning module. Like Curses, but much simpler and less featureful.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk - Perl/Tk, the Perl interface to the Tk graphics programming toolkit. Tk lets you create X window applications with ease. (Your computer will need to be running X if you're to program with Perl/Tk.) The latest (and first non-beta) version of Perl/Tk is available as Tk400.200. Users should make use of the excellent Perl/Tk FAQ.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::BLT::Table - A geometry manager for Tk. You'll want to be familiar with the Tk module first.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::FileDialog - A reusable Tk-widget login screen. Provides a configurable File Dialog widget. You'll want to be familiar with the Tk module first.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::JPEG - A JPEG (Joint Photographic Experts Group; an image format) loader for the Tk Photo image type. You'll want to be familiar with the Tk module first.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::SelFile - A Tk widget for choosing a file to read or write. You'll want to be familiar with the Tk module first.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::Text - Tk comes with a Text widget, but there's a drop-in replacement called "etext" which supports a new kind of text annotation called a block, and performs an object-oriented dump of its contents. See the "etext" directory inside the Tk directory.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tk::WaitBox - A "Please Wait..." Dialog widget for Tk. You'll want to be familiar with the Tk module first.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

09_Interfaces_to_Other_Languages

C::Scan - Scans C programs for easily recognized constructs. For instance, you can use it to extract a list of include files used by a C program, and all the include files used by THOSE include files, and so on. Uses the Data::Flow module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

c_plus_plus - A short example of how you can access C++ code from Perl. Also see ./docs/manual/html/perlembed.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Language::Prolog - A Prolog (logic programming language) interpreter written in Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tcl - An interface to the Tcl (Tool Command Language) library. Lets you create Tcl interpreters as Perl 5 objects.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Tcl::Tk - An interface to the Tk graphics environment via Tcl. This isn't used so much anymore now that Perl/Tk has been made completely independent of Tcl; use the Tk module instead unless you really prefer using Tcl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

10_File_Names_Systems_Locking

Cwd - Three functions for determining the current working directory. One is fast but flaky, one is slow and safe, one is juuust right. The Cwd module is bundled with Perl.

File::CounterFile - Maintains a persistent counter in the filesystem. You increment it and decrement it from your Perl script, and it remembers the value forever. Uses file locking. Now part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Df - The Unix df command tells you how full your disks are. Should your Perl programs need to know, they can use this module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Flock - A wrapper around the flock() call. flock() implements file locking, which prevents two processes from writing to the same file at the same time. (When that happens, all data is often lost.) Also see the File::Lock module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Copy - Lets you copy files within Perl, by either names or filehandles. Now part of the File::Tools module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::KGlob - Expands a Unix file glob, e.g. "*" is replaced by a list of the files in the current directory. Also see the entry for glob() in ./docs/manual/html/perlfunc.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::KGlobRE - Converts a Unix file glob to a regular expression. Bundled with File::KGlob.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Listing - Parses a directory listing. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Lock - A wrapper around the flock() call. flock() implements file locking, which prevents two processes from writing to the same file at the same time. (When that happens, all data is often lost.) Also see the File::Flock module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Recurse - Lets you perform some operation throughout an entire directory tree. Part of the File::Tools module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Slurp - reads and writes files with single commands.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Sync - Implements fsync() and sync(), which make sure that your computer and its disks are...in sync.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

File::Tools - A wrapper around the File::Copy and File::Recurse module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

11_String_Processing_Language_Text_Processing

Font::AFM - Lets your Perl program extract information about AFM (Adobe Font Metric) fonts. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Search::Text - A common search interface to a number of different text-based search engines.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SGMLS - Classes for use with the SGMLS and NSGMLS parsers. (SGML stands for Standard Generlized Markup Language. HTML is almost an example of an SGML.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

stem.pl - Not a module, but a library file. stem.pl performs text stemming -- finding the "root word." For instance, the stem of "walked" is "walk", and the stem of "stemming" is "stem". stem.pl is in the Text:: module set.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

String::BitCount - Count the number of 1 ("on") bits in a string.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

String::Parext - Older version of String::Parity, below.

String::Parity - Parity functions for strings. In an ideal world, this module would be obsolete, because everything would be 8-bit clean and strings would use one of the 8 bit ISO character sets if not UNICODE. But some prehistoric device called "modems" still use parity checks to ensure the integrity of 7-bit data. Imagine that.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

String::Approx - Approximate ("fuzzy") matching for strings. You give it a string, it returns a list of all strings that are n insertions, deletions, or substitutions distant from your string. Fuzzy substitutions are also possible.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

String::Scanf - Emulate C's sscanf() function, which extracts and assigns values from a string.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

The Text-Tabs+Wrap Bundle contains Text::Tabs and Text::Wrap, both described below.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::Bib - Parsing "refer" or "grefer" bibliography (".bib") files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::German - Stems German words. Also see stem.pl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::Tabs - In a document, you can replace multiple spaces with tabs, or tabs with multiple spaces, just like the Unix "expand" and "unexpand" utilities. Part of the Text-Tabs+Wrap bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::Template - This module defines a "template" as a chunk of text with cute little Perl expressions embedded in it. You can use this module to replace the expressions with their values.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::TeX - Enables parsing of TeX documents.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::Wrap - Line wrapping and paragraph reformatting. Part of the Text-Tabs+Wrap bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Text::Trie - Given a list of strings, returns their common heads and tails.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Wais - Access to the freeWais-sf libraries. Wais (Wide Area Information Server) is a service/protocol for storing large text databases for speedy retrieval.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

12_Option_Argument_Parameter_Processing

ConfigReader - A set of classes for reading configuration files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Getopt::Long - Implements POSIX option processing with GNU extensions, so you can parse darn near any command-line option. See Getopt::Std.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Getopt::Mixed - GNU-style option processing, with features of both Getopt::Std and Getopt::Long. See the Getopt::Std module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Getopt::Regex - Lets you handle command-line option processing with regular expressions.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Getopt::Std - Option processing for command lines. Let's say you want users to provide "height" and "width" arguments to your program like so: my_program -h 7 -w 10. But you also want to handle my_program -w 10 -h 7. Getopt::Std makes this easy.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

IniConf - Read and write Windows .INI files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Resources - Manage application defaults, similar to what the X window system does.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

13_Internationalization_and_Locale

I18N::Collate - Compare 8-bit scalar data according to the current locale. (A locale is kind of a language-specific definition of the set of valid characters.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

14_Authentication_Security_Encryption

Crypt::DES - Implements the DES (Data Encryption Standard) block cipher algorithm.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Crypt::IDEA - Implements the IDEA block cipher algorithm.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Des - A Perl interface to the DES (Data Encryption) library. You'll need a C DES library. Also see the Crypt::DES module.

MD5 - RSA's MD5 message digest algorithm. Computes a one-way "thumbnail" of a message that's pretty hard to spoof, so bad guys won't be able to tamper with your message. Also see the SHA module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

PGP - An interface to the Pretty Good Privacy public-key cryptography system.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SHA - Interface to the NIST Secure Hash Algorithm (SHA). Also see the MD5 module above.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

15_World_Wide_Web_HTML_HTTP_CGI

Apache - The Apache Web server is freely available, fast, and easy to install. With this module, you can natively execute Perl scripts. Every Web server can execute Perl scripts, of course -- but it requires starting up a fresh Perl interpreter every time. By embedding Perl inside the Web server, this overhead is avoided.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI - A quick and dirty (but stable, popular, and reliable) module for creating and processing CGI scripts. Used by thousands of people.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

The libwww Bundle - Contains eight big module sets related to the World Wide Web: HTML, LWP, MIME, WWW, HTTP, URI, File, and Font. See their entries elsewhere in this document. If you install the entire libwww bundle, you'll get them all. Do it.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI::Imagemap - Lets you create "clickable images" on your web pages. You can define actions for rectangular, polygonal, and circular portions of your image, as well as individual points.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI::Lite - The CGI_Lite module handles and decodes CGI form data, of both the GET and POST variety. Inside the CGI directory.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI::modules - Set of modules for creating CGI scripts. Requires the URI::Unescape class, which is part of the libwww bundle, so you'll need that too.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI::Response - A module for constructing responses to CGI requests. There's a "Simple Interface" which handles most common HTTP headers, and a "Full Interface" which handles everything else. Requires CGI::modules, which in turn requires the libwww bundle. Requires the HTTP module set, which is also part of the libwww bundle. CGI::Response also requires the SelfLoader module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CGI::Out - A helper routine for CGI programs, CGI::Out buffers STDOUT until your script has completed. If an error occurs, a nice HTML error message will be generated instead of the drab "Server Error", or worse, nothing at all. It'll also send you e-mail when your script barfs.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

FCGI - Fast CGI, based on the FCGI module that comes with Open Market's FastCGI Developer's Kit. Similar to the CGI module. See www.fastcgi.com for details. Requires SFIO and Perl version 5.003_02 or later.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::AsSubs - Functions that construct an HTML syntax tree. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Base - Methods for building HTML tags. Obsoleted by many other modules.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Element - Class for objects that represent HTML elements. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Entities - Convert strings to/from valid HTML strings, which replace funky characters with special glyphs called HTML entities. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::FormatPS - Convert HTML to PostScript. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::FormatText - Convert HTML to plain text. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Formatter - Base class for HTML formatters. Used by HTML::FormatPS and HTML::FormatText. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::HTML32.dtd - The HTML definition. This isn't a module, just a plain document that you might find useful. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::HeadParser - Parses the section of an HTML document. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::ISOlat1.sgml - The ISO Latin 1 definition. This isn't a module, just a plain document that you might find useful. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::LinkExtor - Extracts links from an HTML document. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Parse - Parse HTML text. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Parser - SGML parser class. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::QuickCheck - Fast and simple HTML validation.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Simple - Yet another way of creating HTML. Not as robust as the libwww library.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::Stream - An object-oriented stream for creating HTML.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::TreeBuilder - Parser that builds an HTML syntax tree. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTML::dtd2pm.pl - A Perl library file (not a module!) that generates the HTML parser in Perl automatically, by reading the HTML Document Type Definition (see HTML::HTML32.dtd). Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Date - Conversion routines for the HTTP date format. Also see the Date:: modules. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Headers - A class encapsulating HTTP message headers. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Message - A base class encapsulating HTTP messages. Used by HTTP::Request and HTTP::Response. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Negotiate - Implements the HTTP content negotiation algorithm, which lets browser and web server mutually agree on a content representation. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Request - Class encapsulating HTTP requests. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Response - Class encapsulating HTTP responses. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTP::Status - Processes status codes sent over HTTP, e.g. "403 Forbidden", "4040 Not Found", or "402 Payment required". Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTPD::AdminBase - Base class for the rest of the HTTPD modules.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTPD::Authen - Portable methods for authenticating users for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTPD::UserAdmin - Portable access to user databases for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

HTTPD::GroupAdmin - Portable access to group databases for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP - Library for WWW access in Perl. This module loads the other modules in the LWP module set. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::Debug - Debugging routines for libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::IO - Low-level input and output functions for libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::MediaTypes - Guess the media type for a file or a URL. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::media.types - Not a module, just a list of the media types you'll often see in MIME headers (e.g. text/html, image/gif) and their likely file extensions (e.g. .html, .htm, .gif).
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::MemberMixin - A class used to enhance instance variable access in libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::Protocol - Base class for all protocol implementations supported by the libwww library. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::RobotUA - Create your own Web robot. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::Simple - A simplified interface to the mammoth libwww bundle. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::Socket - Implements TCP/IP sockets for libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::TkIO - If you're using Tk (see the Tk module) and libwww simultaneously, you need the input/output functions defined in this module. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

LWP::UserAgent - Code that lets your program behave like a Web browser. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::Base64 - Encodes and decodes Base 64 strings. I use MIME::Base64::decode_base64() to make them readable. No longer part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::QuotedPrint - Encodes and decodes Quoted Printable strings. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::Decoder - An object for decoding the body portion of a MIME stream. NOT part of the mammoth libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::Entity - Class for parsed-and-decoded MIME message. NOT part of the mammoth libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::Head - A class for parsing and manipulating RFC-822 (mail) headers, and specialized for coping with MIME types. NOT part of the mammoth libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

MIME::Parser - Split MIME mail into decoded components. This is how you can parse MIME streams to obtain MIME entities. NOT part of the mammoth libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Netscape::Cache - Lets you access the filenames and URLs of the cache files used by the Netscape web browser.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Netscape::History - Parses the history files that Netscape leaves behind in your home directory. You did know about those, right?
Local copy (only if this is a CPAN site!)
Copy from somewhere else

URI::Escape - Escape unsafe characters, and unescape escaped characters, in URIs, which are a generalization of URLs. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

URI::URL - Parse and manipulate URLs (Uniform Resource Locators). Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

WWW::RobotRules - Nice Web robots, as they scour the Net for treasure, heed a robots.txt file if they find one. Information about the Robot standard can be found in http://info.webcrawler.com/mak/projects/robots/norobots.html.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

16_Server_and_Daemon_Utilities

EventServer - A generic server that handles I/O driven clients, timer drive clients, and interrupt-driven clients. See the Server module set.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Server::Initialize - Utilities for the EventServer.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Server::Server::EventDriven - Same as the plain old EventServer module.

17_Archiving_and_Compression

Compress - a Perl interface to the info-zip zlib compression library, which lets you compress files. You'll need the zlib C library; the Compress module is just a Perl veneer over it.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Convert:UU - Routines for UUencoding and UUdecoding. (UUencoding is a seven-bit ASCII checksummed format often used for transporting large and/or binary files across the Internet.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

18_Images_Pixmap_Bitmap_Manipulation

GD - An interface for the gd library, which lets your Perl program create GIFs and QuickDraw pictures. You'll need the gd library.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

graph-modules - A bundle of modules for constructing directed graphs. (As in graph theory, not graphics.)
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Image::Size - A routine for determining the size of an image.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

OpenGL - If you have the OpenGL graphics library, you can use this module as an interface to it. OpenGL was developed primarily for SGI workstations, but the OpenGL library will also work with MesaGL, a similar library developed for SunOS.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

PDL - See the entry for the Perl Data Language.

PGPLOT - The PGPLOT C library helps you create graphical plots; this module provides a Perl interface to it.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

19_Mail_and_Usenet_News

Mail::Folder - Provides an interface to e-mail folders independent of the physical (filesystem) folders. Requires Mail::Tools, Time::Date, and File::BasicFlock.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Mail::POP3Client - Object-oriented interface to a POP3 server; can be used to write mail notifiers (e.g. "biff") and mail readers.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Mail::Tools - Lots of utilities for processing Internet mail messages.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

News::NNTPClient - Interface to the Network News Transfer Protocol (NNTP). Also see Net::NNTP.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

News::Newsrc - Manages .newsrc files, which keep track of what Usenet groups you read.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

20_Control_Flow_Utilities

AtExit - Many operating systems allow you to specify an action to be taken when your program exists. ANSI C specifies that this is to be done with an atexit() function; the AtExit Perl module duplicates this for Perl. Also see END blocks, defined in ./docs/manual/html/perlmod.html. Also see the POSIX module, which defines atexit() as well.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Callback - A simple module that lets you create callbacks. You create a callback like so: $x = new Callback(\&myfunc, @mybaseargs); after which $x->call(@moreargs) calls myfunc(@mybaseargs,@moreargs).
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Religion - Where do Perl programs go when they die? If your Perl program die()s or warn()s, the code in $SIG{__DIE__} or $SIG{__WARN__} is executed. The Religion module simplifies access to these.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

21_File_Handle_Input_Output

DirHandle - Treat directory handles as objects. The DirHandle module is bundled with Perl.

FileCache - Many operating systems only let you have a small number of file descriptors open at any one time. You can bypass that limit with the FileCache module, which is bundled with Perl.

FileHandle - Treat filehandles as objects. The FileHandle module is bundled with Perl.

IO - Loads all of the IO modules at once: IO::Handle, IO::Seekable, IO::File, IO::Pipe, and IO::Socket. All of these modules are bundled with Perl.

Log::Topics - Control flow of system messages.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

22_Microsoft_Windows_Modules

Win32 - This module set contains:


Local copy (only if this is a CPAN site!)
Copy from somewhere else

23_Miscellaneous_Modules

ARS - A Web client for Remedy's ARS system. Useful only if you're already using ARSPerl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Agent - Methods for creating Penguin-based software agents. Also see the Penguin module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Archie - Archie is a system for indexing FTP sites. The Archie module queries an Archie server using the Prospero protocol.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Audio - A module for manipulating audio files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Bio - Perl routines for bioinformatics.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Business::CreditCard - Routines for checking the validity of credit cards and for identifying the card type.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

CPAN - Automates the building and installing of Perl modules. Requires Net::FTP and a connection to the Internet.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Logfile - Generate ASCII reports from arbitrary logfiles.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Neural - Artificial neural networks with backpropagation. Also see the Statistics::LTU module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Penguin - Lets you execute encrypted, digitally signed Perl code on another computer. Think Java, but not proprietary, not restricted to the Web, and lacking facilities for easy graphical manipulations in browsers.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Remedy::Ar - Interface to Remedy's Action Request.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

Roman - Convert from Arabic (normal) numbers to Roman numbers and back.
Local copy (only if this is a CPAN site!)
Copy from somewhere else

SyslogScan - Routines for parsing system logs. Also see the Syslog module bundled with Perl and the Logfile module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else


Remember, to use a module, you must a) install it, and b) place "use name_of_module;" near the top of your program.

How You Can Help-- from the original CPAN.html by Jarkko Hietaniemi

Comment

You can send email to the CPAN administrators, cpan@perl.org.

Inform

If you know of some Perl resources that seem not to be in the CPAN, please tell us. We will grab it (if it is small and/or stable) or set up regular mirroring (if it is not).

Contribute

If you have some modules/scripts/documentation yourself that you would like to contribute to CPAN, please read the file modules/04pause.html and let us know.

Register

If you have a reliable and well-connected ftp site where you can keep CPAN (about 260 MB currently), more mirror sites are welcome. Feel free to volunteer and contact the CPAN administrators describing your mirroring setup, please see the top of the file MIRRORED.BY Of course, first check (see the above host list) whether your area (network-connectivity-and-bandwidth-wise) is already well covered. Redundancy and fault-tolerance are good things for ftp archives like CPAN but virtues can be exaggerated. Mirroring software is available from the CPAN itself.

Private/Local Mirroring

If you want to set up a private/local mirror of CPAN but do not want to advertise it you do not need to contact the CPAN admistrators. You need to assess which of the public CPAN sites would give the best ftp bandwidth for you (during the nighttime, mind) and then contact the email address dst_contact given in the MIRRORED.BY file to learn the best time of the day to do your mirror. Mirroring software is available from the CPAN itself.

Copyright
Copyright 1996, 1997 Jon Orwant. All Rights Reserved. I wrote the original set of module descriptions for the Advice Press CD-ROM (which contains the entire CPAN); they own those descriptions and have graciously allowed me to release them to the Internet free of charge. You may redistribute them free of charge provided that you do not charge anything for them and that you include this paragraph. If you wish to charge money for this document, or for the medium containing it, you must contact me (orwant@tpj.com) first and I'll forward your request to Advice Press.

ADVICE Press "Perl Toolkit" CD-ROM: E-mail press@advice.com, 366 Cambridge Ave., Palo Alto CA 94306, (415) 321-2197. Contains the CPAN (with most of the utilities already uncompressed for you) and a modified version of the list you see here.

Of course, there are other Perl CD-ROMs containing the CPAN; if their publishers send me mail, I'll include their ordering information here.