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.
CPAN.html
This file.ENDINGS
What file extensions like .zip and .gz and .tar mean.MIRRORED.BY
Information about sites mirroring this one.MIRRORING.FROM
Information about sites this one mirrors.README
andREADME.html
A brief introduction to the CPAN.RECENT
andRECENT.html
What's changed recently in the CPAN.authors/
modules (and extensions), listed by authorclpa/
archive of the comp.lang.perl.announce Usenet newsgroupdoc/
Perl documentation and FAQsindices/
various index views of CPANmisc/
Miscellany:modules/
modules (and extensions), listed by module nameports/
non-UNIX Perl ports, both as executables and sourcescripts/
Perl utilities that aren't modules. No new submissions are accepted.src/
The Perl distribution.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:
- uncompress it, either with
gzip -d
orgunzip
or maybepkzip
. That'll create a tar file.- untar that tar file with
tar xf someutil.tar
or whatever utility you have that can untar files. That'll create a directory.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 elseAutoLoader - 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 elseCarp - 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 elseinteger - 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 elsePod::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 elsePod::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 elsePod::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 elsePod::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 elseSafe - 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 elseSetDualVar - 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 elsesigtrap - 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 elsevars - 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 elseDevel::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 elseDevel::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 elseDevel::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 elseDevel::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 elseDevel::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 elseDevel::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 elseDevel::SelfStubber - Generate stub functions for a SelfLoading module. Also see the SelfLoader.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseDevel::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 elseExtUtils::Embed - Utilities for using ("embedding") Perl in C/C++ applications.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseExtUtils::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 elseFindBin - Locates the directory in which your Perl and your program reside.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseInclude - Lets you use the #defines from C header files.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMake - 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 elseTest::Harness - A simple interface for testing your Perl module.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseUsage - 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 else04_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 elseEnv - 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 elsePOSIX - 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 elseProc::Simple - Provides "process objects" that help you manage background processes.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseQuota - Utilities for manipulating disk quotas.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSGI::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 elseSGI::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 elseSGI::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 elseShell - 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 elseSys::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 elseSys::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 else05_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 elseDCE - An object-oriented interface to DCE, the Distributed Computing Environment.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseIPC::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 elseThe 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 elseNet::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 elseNet::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 elseNet::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 elseNet::Domain - Evaluate the current host's Internet name and domain.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNet::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 elseNet::Gen - Generic sockets interface. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNet::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 elseNet::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 elseNet::Netrc - Interface to .netrc files. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNet::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 elseNet::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 elseNet::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 elseNet::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 elseNet::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 elseNet::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 elseNet::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 elseNet::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 elseNet::TCP - Provides TCP communication over sockets. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNet::Telnet - Defines constants for the Telnet protocol. Part of the libnet bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNet::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 elseNet::UDP - Provides UDP communication over sockets. Part of the Net-ext bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseParallel::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 elsePtty - Run a process on a pseudo-terminal.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSNMP - Interface to the Simple Network Management Protocol (SNMP).
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSocket - 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 elseClass::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 elseClass::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 elseData::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 elseData::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 elseDate::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 elseDate::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 elseDate::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 elseDate::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 elseDate::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 elseFreezeThaw - Converts Perl data structures to strings and back.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::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 elseMath::Approx - Approximates mathematical functions: you provide the function. Requires Math::Matrix.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::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 elseMath::Brent - One-dimenstional function minimization.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::Derivative - Numeric 1st and 2nd order differentiation.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::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 elseMath::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 elseMath::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 elseMath::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 elseMath::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 elseMath::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 elseMath::Spline - Cubic spline interpolation. Requires Math::Derivative.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::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 elseMath::TrulyRandom - Random numbers generated from interrupt timing discrepancies. Also see Math::PRSG.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMath::VecStat - Basic numeric operations on vectors, e.g. min(), sum(), average().
Local copy (only if this is a CPAN site!)
Copy from somewhere elseObject::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 elseObjStore - 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 elsePDL - 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 elseRef - 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 elseSet::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 elseSet::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 elseSet::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 elseShowTable - 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 elseSort::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 elseSort::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 elseStatistics::ChiSquare - How random is your data? The Chi Square test tells you.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseStatistics::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 elseStatistics::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 elseStorable - 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 elseTie::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 elseTie::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 elseTie::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 elseThe 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 elseThe 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 elseTime::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 elseTime::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 elseTime::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 elseTime::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 elseTime::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 elseTime::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 elseTime::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 elseTime::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 else07_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 elseDBD - 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 elseDBI - 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 elseDB_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 elseDBZ_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 elseMLDBM - Lets you store multidimensional hash structures in DBM files.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMsql - 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 elseMsql::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 elseOraperl - 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 elsePg - 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 elseSDBM_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 elseSybase::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 elseSybperl - 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 elseXbase - Access to Xbase DBF files and Foxpro IDX and FPT files.
Local copy (only if this is a CPAN site!)
Copy from somewhere else08_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 elseCurses - A library for manipulating ASCII graphics.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseCurses::DevKit - The same as Cdk.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseperlmenu - Create ASCII menus with Curses.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSx - 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 elseTerm::AnsiColor - Provides the escape codes for ANSI text attributes.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseTerm::Gnuplot - Low-level drawing routines for the Gnuplot plotting system.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseTerm::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 elseTerm::Query - Generalized question and answer module.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseTerm::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 elseTerm::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 elseTerm::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 elseTerm::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 elseTk - 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 elseTk::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 elseTk::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 elseTk::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 elseTk::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 elseTk::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 elseTk::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 else09_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 elsec_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 elseLanguage::Prolog - A Prolog (logic programming language) interpreter written in Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseTcl - 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 elseTcl::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 else10_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 elseFile::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 elseFile::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 elseFile::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 elseFile::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 elseFile::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 elseFile::Listing - Parses a directory listing. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseFile::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 elseFile::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 elseFile::Slurp - reads and writes files with single commands.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseFile::Sync - Implements
fsync()
andsync()
, which make sure that your computer and its disks are...in sync.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseFile::Tools - A wrapper around the File::Copy and File::Recurse module.
Local copy (only if this is a CPAN site!)
Copy from somewhere else11_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 elseSearch::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 elseSGMLS - 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 elsestem.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 elseString::BitCount - Count the number of 1 ("on") bits in a string.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseString::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 elseString::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 elseString::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 elseThe 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 elseText::Bib - Parsing "refer" or "grefer" bibliography (".bib") files.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseText::German - Stems German words. Also see stem.pl.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseText::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 elseText::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 elseText::TeX - Enables parsing of TeX documents.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseText::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 elseText::Trie - Given a list of strings, returns their common heads and tails.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseWais - 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 else12_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 elseGetopt::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 elseGetopt::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 elseGetopt::Regex - Lets you handle command-line option processing with regular expressions.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseGetopt::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 elseIniConf - Read and write Windows .INI files.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseResources - Manage application defaults, similar to what the X window system does.
Local copy (only if this is a CPAN site!)
Copy from somewhere else13_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 else14_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 elseCrypt::IDEA - Implements the IDEA block cipher algorithm.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseDes - 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 elsePGP - An interface to the Pretty Good Privacy public-key cryptography system.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSHA - 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 else15_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 elseCGI - 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 elseThe 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 elseCGI::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 elseCGI::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 elseCGI::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 elseCGI::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 elseCGI::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 elseFCGI - 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 elseHTML::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 elseHTML::Base - Methods for building HTML tags. Obsoleted by many other modules.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::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 elseHTML::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 elseHTML::FormatPS - Convert HTML to PostScript. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::FormatText - Convert HTML to plain text. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::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 elseHTML::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 elseHTML::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 elseHTML::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 elseHTML::LinkExtor - Extracts links from an HTML document. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::Parse - Parse HTML text. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::Parser - SGML parser class. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::QuickCheck - Fast and simple HTML validation.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::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 elseHTML::Stream - An object-oriented stream for creating HTML.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTML::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 elseHTML::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 elseHTTP::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 elseHTTP::Headers - A class encapsulating HTTP message headers. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTP::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 elseHTTP::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 elseHTTP::Request - Class encapsulating HTTP requests. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTP::Response - Class encapsulating HTTP responses. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTP::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 elseHTTPD::AdminBase - Base class for the rest of the HTTPD modules.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTPD::Authen - Portable methods for authenticating users for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTPD::UserAdmin - Portable access to user databases for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseHTTPD::GroupAdmin - Portable access to group databases for your Web server.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseLWP - 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 elseLWP::Debug - Debugging routines for libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseLWP::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 elseLWP::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 elseLWP::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 elseLWP::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 elseLWP::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 elseLWP::RobotUA - Create your own Web robot. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseLWP::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 elseLWP::Socket - Implements TCP/IP sockets for libwww. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseLWP::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 elseLWP::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 elseMIME::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 elseMIME::QuotedPrint - Encodes and decodes Quoted Printable strings. Part of the libwww bundle.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseMIME::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 elseMIME::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 elseMIME::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 elseMIME::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 elseNetscape::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 elseNetscape::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 elseURI::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 elseURI::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 elseWWW::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 else16_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 elseServer::Initialize - Utilities for the EventServer.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseServer::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 elseConvert: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 else18_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 elsegraph-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 elseImage::Size - A routine for determining the size of an image.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseOpenGL - 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 elsePDL - 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 else19_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 elseMail::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 elseMail::Tools - Lots of utilities for processing Internet mail messages.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNews::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 elseNews::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 else20_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 elseCallback - 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 elseReligion - 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 else21_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 else22_Microsoft_Windows_Modules
Win32 - This module set contains:
- Win32Pipe, which lets you use named pipes with Win32
- Win32_AdminMisc, which is a NetAdmin extension for NT
- Win32odbc, which is an ODBC extension for Win32 Perl.
Local copy (only if this is a CPAN site!)
Copy from somewhere else23_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 elseAgent - Methods for creating Penguin-based software agents. Also see the Penguin module.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseArchie - 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 elseAudio - A module for manipulating audio files.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseBio - Perl routines for bioinformatics.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseBusiness::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 elseCPAN - 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 elseLogfile - Generate ASCII reports from arbitrary logfiles.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseNeural - Artificial neural networks with backpropagation. Also see the Statistics::LTU module.
Local copy (only if this is a CPAN site!)
Copy from somewhere elsePenguin - 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 elseRemedy::Ar - Interface to Remedy's Action Request.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseRoman - Convert from Arabic (normal) numbers to Roman numbers and back.
Local copy (only if this is a CPAN site!)
Copy from somewhere elseSyslogScan - 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 HietaniemiComment
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.