2 Generated by perlmodlib.PL -- DO NOT EDIT!
6 perlmodlib - constructing new Perl modules and finding existing ones
8 =head1 THE PERL MODULE LIBRARY
10 Many modules are included in the Perl distribution. These are described
11 below, and all end in F<.pm>. You may discover compiled library
12 files (usually ending in F<.so>) or small pieces of modules to be
13 autoloaded (ending in F<.al>); these were automatically generated
14 by the installation process. You may also discover files in the
15 library directory that end in either F<.pl> or F<.ph>. These are
16 old libraries supplied so that old programs that use them still
17 run. The F<.pl> files will all eventually be converted into standard
18 modules, and the F<.ph> files made by B<h2ph> will probably end up
19 as extension modules made by B<h2xs>. (Some F<.ph> values may
20 already be available through the POSIX, Errno, or Fcntl modules.)
21 The B<pl2pm> file in the distribution may help in your conversion,
22 but it's just a mechanical process and therefore far from bulletproof.
24 =head2 Pragmatic Modules
26 They work somewhat like compiler directives (pragmata) in that they
27 tend to affect the compilation of your program, and thus will usually
28 work well only when used within a C<use>, or C<no>. Most of these
29 are lexically scoped, so an inner BLOCK may countermand them
36 which lasts until the end of that BLOCK.
38 Some pragmas are lexically scoped--typically those that affect the
39 C<$^H> hints variable. Others affect the current package instead,
40 like C<use vars> and C<use subs>, which allow you to predeclare a
41 variables or subroutines within a particular I<file> rather than
42 just a block. Such declarations are effective for the entire file
43 for which they were declared. You cannot rescind them with C<no
46 The following pragmas are defined (and have their own documentation).
52 Get/set subroutine or variable attributes
56 Set/get attributes of a subroutine (deprecated)
60 Postpone load of modules until a function is used
64 Establish an ISA relationship with base classes at compile time
68 Transparent BigInteger support for Perl
72 Transparent BigNumber support for Perl
76 Transparent BigNumber/BigRational support for Perl
80 Use MakeMaker's uninstalled version of a package
84 Force byte semantics rather than character semantics
88 Define character names for C<\N{named}> string literal escapes
96 Produce verbose warning diagnostics
100 Allows you to write your script in non-ascii or non-utf8
102 =item encoding::warnings
104 Warn on implicit encoding conversions
108 Enable new syntactic features
112 Compile-time class fields
116 Control the filetest permission operators
120 C<use> a Perl module if a condition holds
124 Use integer arithmetic instead of floating point
128 Request less of something
132 Manipulate @INC at compile time
136 Use and avoid POSIX locales for built-in operations
140 Method Resolution Order
144 Set default PerlIO layers for input and output
148 Restrict unsafe operations when compiling
152 Package for overloading Perl operations
156 Establish an ISA relationship with base classes at compile time
160 Alter regular expression behaviour
164 Enable simple signal handling
168 Control sort() behaviour
172 Restrict unsafe constructs
180 Perl interpreter-based threads
182 =item threads::shared
184 Perl extension for sharing data structures between threads
188 Enable/disable UTF-8 (or UTF-EBCDIC) in source code
192 Predeclare global variable names (obsolete)
196 Perl extension for Version Objects
200 Control VMS-specific language features
204 Control optional warnings
206 =item warnings::register
208 Warnings import function
212 =head2 Standard Modules
214 Standard, bundled modules are all expected to behave in a well-defined
215 manner with respect to namespace pollution because they use the
216 Exporter module. See their own documentation for details.
218 It's possible that not all modules listed below are installed on your
219 system. For example, the GDBM_File module will not be installed if you
220 don't have the gdbm library.
226 Provide framework for multiple DBMs
230 Implements the C<prove> command.
232 =item App::Prove::State
234 State storage for the C<prove> command.
236 =item Archive::Extract
238 A generic archive extracting mechanism
242 Module for manipulations of tar archives
244 =item Archive::Tar::File
246 A subclass for in-memory extracted file from Archive::Tar
248 =item Attribute::Handlers
250 Simpler definition of attribute handlers
254 Load subroutines only on demand
258 Split a package for autoloading
266 Walk Perl syntax tree, printing concise info about ops
270 Walk Perl syntax tree, printing debug info about ops
274 Perl compiler backend to produce perl code
282 Adds debugging stringification to B::
286 Show lexical variables used in functions or files
290 Walk Perl syntax tree, printing terse info about ops
294 Generates cross reference reports for Perl programs
298 Benchmark running times of Perl code
302 Simple Common Gateway Interface Class
306 Backward compatibility module for CGI.pm
310 CGI routines for writing to the HTTPD (or other) error log
314 Interface to Netscape Cookies
318 CGI Interface for Fast CGI
322 Module to produce nicely formatted HTML code
326 Simple Interface to Server Push
330 Backward compatibility module for defunct CGI::Switch
334 Internal utilities used by CGI module
338 Pseudo-namespace for Perl's core routines
342 Query, download and build perl modules from CPAN sites
344 =item CPAN::API::HOWTO
346 A recipe book for programming with CPAN.pm
348 =item CPAN::FirstTime
350 Utility for CPAN::Config file Initialization
354 Interface between CPAN.pm and Kwalify.pm
358 Wrapper around CPAN.pm without using any XS module
362 Utility functions to compare CPAN versions
366 API & CLI access to the CPAN mirrors
368 =item CPANPLUS::Dist::Base
370 Base class for custom distribution classes
372 =item CPANPLUS::Dist::Sample
374 Sample code to create your own Dist::* plugin
376 =item CPANPLUS::Shell::Classic
378 CPAN.pm emulation for CPANPLUS
380 =item CPANPLUS::Shell::Default::Plugins::HOWTO
382 Documentation on how to write your own plugins
386 Warn of errors (from perspective of caller)
390 Heavy machinery, no user serviceable parts inside
394 Report the search path for a class's ISA tree
398 Declare struct-like datatypes as Perl classes
400 =item Compress::Raw::Zlib
402 Low-Level Interface to zlib compression library
406 Interface to zlib compression library
410 Access Perl configuration information
414 Get pathname of current working directory
418 Programmatic interface to the Perl debugging API
422 Filter DBM keys/values
424 =item DBM_Filter::compress
426 Filter for DBM_Filter
428 =item DBM_Filter::encode
430 Filter for DBM_Filter
432 =item DBM_Filter::int32
434 Filter for DBM_Filter
436 =item DBM_Filter::null
438 Filter for DBM_Filter
440 =item DBM_Filter::utf8
442 Filter for DBM_Filter
446 Perl5 access to Berkeley DB version 1.x
450 Stringified perl data structures, suitable for both printing and C<eval>
456 =item Devel::InnerPackage
458 Find all the inner packages of a package
462 A data debugging tool for the XS programmer
464 =item Devel::SelfStubber
466 Generate stubs for a SelfLoading module
470 Modules that calculate message digests
474 Perl interface to the MD5 Algorithm
478 Perl extension for SHA-1/224/256/384/512
486 Calculate digests of files
490 Supply object methods for directory handles
494 Provides screen dump of Perl data.
498 Dynamically load C libraries into Perl code
506 Alias definitions to encodings
510 Single Byte Encodings
512 =item Encode::CJKConstants
514 Internally used by Encode::??::ISO_2022_*
518 China-based Chinese Encodings
522 Internally used by Encode::CN
526 Internally used by Encode
532 =item Encode::Encoder
534 Object Oriented Encoder
536 =item Encode::Encoding
538 Encode Implementation Base Class
540 =item Encode::GSM0338
542 ESTI GSM 03.38 Encoding
546 Guesses encoding from data
552 =item Encode::JP::H2Z
554 Internally used by Encode::JP::2022_JP*
556 =item Encode::JP::JIS7
558 Internally used by Encode::JP
564 =item Encode::KR::2022_KR
566 Internally used by Encode::KR
568 =item Encode::MIME::Header
570 MIME 'B' and 'Q' header encoding
572 =item Encode::MIME::Name
574 Internally used by Encode
578 A detailed document on Encode and PerlIO
580 =item Encode::Supported
582 Encodings supported by Encode
590 Taiwan-based Chinese Encodings
592 =item Encode::Unicode
594 Various Unicode Transformation Formats
596 =item Encode::Unicode::UTF7
602 Use nice English (or awk) names for ugly punctuation variables
606 Perl module that imports environment variables as scalars or arrays
610 System errno constants
614 Implements default import method for modules
616 =item Exporter::Heavy
620 =item ExtUtils::CBuilder
622 Compile and link C code for Perl modules
624 =item ExtUtils::CBuilder::Platform::Windows
626 Builder class for Windows platforms
628 =item ExtUtils::Command
630 Utilities to replace common UNIX commands in Makefiles etc.
632 =item ExtUtils::Command::MM
634 Commands for the MM's to use in Makefiles
636 =item ExtUtils::Constant
638 Generate XS code to import C header constants
640 =item ExtUtils::Constant::Base
642 Base class for ExtUtils::Constant objects
644 =item ExtUtils::Constant::Utils
646 Helper functions for ExtUtils::Constant
648 =item ExtUtils::Constant::XS
650 Base class for ExtUtils::Constant objects
652 =item ExtUtils::Embed
654 Utilities for embedding Perl in C/C++ applications
656 =item ExtUtils::Install
658 Install files from here to there
660 =item ExtUtils::Installed
662 Inventory management of installed modules
664 =item ExtUtils::Liblist
666 Determine libraries to use and how to use them
670 OS adjusted ExtUtils::MakeMaker subclass
672 =item ExtUtils::MM_AIX
674 AIX specific subclass of ExtUtils::MM_Unix
676 =item ExtUtils::MM_Any
678 Platform-agnostic MM methods
680 =item ExtUtils::MM_BeOS
682 Methods to override UN*X behaviour in ExtUtils::MakeMaker
684 =item ExtUtils::MM_Cygwin
686 Methods to override UN*X behaviour in ExtUtils::MakeMaker
688 =item ExtUtils::MM_DOS
690 DOS specific subclass of ExtUtils::MM_Unix
692 =item ExtUtils::MM_Darwin
694 Special behaviors for OS X
696 =item ExtUtils::MM_MacOS
698 Once produced Makefiles for MacOS Classic
700 =item ExtUtils::MM_NW5
702 Methods to override UN*X behaviour in ExtUtils::MakeMaker
704 =item ExtUtils::MM_OS2
706 Methods to override UN*X behaviour in ExtUtils::MakeMaker
708 =item ExtUtils::MM_QNX
710 QNX specific subclass of ExtUtils::MM_Unix
712 =item ExtUtils::MM_UWIN
714 U/WIN specific subclass of ExtUtils::MM_Unix
716 =item ExtUtils::MM_Unix
718 Methods used by ExtUtils::MakeMaker
720 =item ExtUtils::MM_VMS
722 Methods to override UN*X behaviour in ExtUtils::MakeMaker
724 =item ExtUtils::MM_VOS
726 VOS specific subclass of ExtUtils::MM_Unix
728 =item ExtUtils::MM_Win32
730 Methods to override UN*X behaviour in ExtUtils::MakeMaker
732 =item ExtUtils::MM_Win95
734 Method to customize MakeMaker for Win9X
738 ExtUtils::MakeMaker subclass for customization
740 =item ExtUtils::MakeMaker
742 Create a module Makefile
744 =item ExtUtils::MakeMaker::Config
746 Wrapper around Config.pm
748 =item ExtUtils::MakeMaker::FAQ
750 Frequently Asked Questions About MakeMaker
752 =item ExtUtils::MakeMaker::Tutorial
754 Writing a module with MakeMaker
756 =item ExtUtils::MakeMaker::bytes
758 Version-agnostic bytes.pm
760 =item ExtUtils::MakeMaker::vmsish
762 Platform-agnostic vmsish.pm
764 =item ExtUtils::Manifest
766 Utilities to write and check a MANIFEST file
768 =item ExtUtils::Mkbootstrap
770 Make a bootstrap file for use by DynaLoader
772 =item ExtUtils::Mksymlists
774 Write linker options files for dynamic extension
776 =item ExtUtils::Packlist
778 Manage .packlist files
780 =item ExtUtils::ParseXS
782 Converts Perl XS code into C code
784 =item ExtUtils::testlib
786 Add blib/* directories to @INC
790 Replace functions with equivalents which succeed or die
794 Load the C Fcntl.h defines
798 Parse file paths into directory, filename and suffix.
800 =item File::CheckTree
802 Run many filetest checks on a tree
806 Compare files or filehandles
810 Copy files or filehandles
814 DOS like globbing and then some
818 A generic file fetching mechanism
822 Traverse a directory tree.
826 Perl extension for BSD glob routine
828 =item File::GlobMapper
830 Extend File Glob to Allow Input and Output Files
834 Create or remove directory trees
838 Portably perform operations on file names
840 =item File::Spec::Cygwin
842 Methods for Cygwin file specs
844 =item File::Spec::Epoc
846 Methods for Epoc file specs
848 =item File::Spec::Functions
850 Portably perform operations on file names
852 =item File::Spec::Mac
854 File::Spec for Mac OS (Classic)
856 =item File::Spec::OS2
858 Methods for OS/2 file specs
860 =item File::Spec::Unix
862 File::Spec for Unix, base for other File::Spec modules
864 =item File::Spec::VMS
866 Methods for VMS file specs
868 =item File::Spec::Win32
870 Methods for Win32 file specs
874 Return name and handle of a temporary file safely
878 By-name interface to Perl's built-in stat() functions
882 Keep more files open than the system permits
886 Supply object methods for filehandles
890 Simplified source filtering
892 =item Filter::Util::Call
894 Perl Source Filter Utility Module
898 Locate directory of original perl script
902 Perl5 access to the gdbm library.
906 Extended processing of command line options
910 Process single-character switches with switch clustering
914 A selection of general-utility hash subroutines
916 =item Hash::Util::FieldHash
918 Support for Inside-Out Classes
922 Compare 8-bit scalar data according to the current locale
926 Functions for dealing with RFC3066-style language tags
928 =item I18N::LangTags::Detect
930 Detect the user's language preferences
932 =item I18N::LangTags::List
934 Tags and names for human languages
938 Query locale information
942 Load various IO modules
944 =item IO::Compress::Base
946 Base Class for IO::Compress modules
948 =item IO::Compress::Deflate
950 Write RFC 1950 files/buffers
952 =item IO::Compress::Gzip
954 Write RFC 1952 files/buffers
956 =item IO::Compress::RawDeflate
958 Write RFC 1951 files/buffers
960 =item IO::Compress::Zip
962 Write zip files/buffers
966 Supply object methods for directory handles
970 Supply object methods for filehandles
974 Supply object methods for I/O handles
978 Supply object methods for pipes
982 Object interface to system poll call
986 Supply seek based methods for I/O objects
990 OO interface to the select system call
994 Object interface to socket communications
996 =item IO::Socket::INET
998 Object interface for AF_INET domain sockets
1000 =item IO::Socket::UNIX
1002 Object interface for AF_UNIX domain sockets
1004 =item IO::Uncompress::AnyInflate
1006 Uncompress zlib-based (zip, gzip) file/buffer
1008 =item IO::Uncompress::AnyUncompress
1010 Uncompress gzip, zip, bzip2 or lzop file/buffer
1012 =item IO::Uncompress::Base
1014 Base Class for IO::Uncompress modules
1016 =item IO::Uncompress::Gunzip
1018 Read RFC 1952 files/buffers
1020 =item IO::Uncompress::Inflate
1022 Read RFC 1950 files/buffers
1024 =item IO::Uncompress::RawInflate
1026 Read RFC 1951 files/buffers
1028 =item IO::Uncompress::Unzip
1030 Read zip files/buffers
1034 IO:: style interface to L<Compress::Zlib>
1038 Finding and running system commands made easy
1042 SysV Msg IPC object class
1046 Open a process for both reading and writing
1050 Open a process for reading, writing, and error handling
1052 =item IPC::Semaphore
1054 SysV Semaphore IPC object class
1056 =item IPC::SharedMem
1058 SysV Shared Memory IPC object class
1062 System V IPC constants and system calls
1066 A selection of general-utility list subroutines
1068 =item Locale::Constants
1070 Constants for Locale codes
1072 =item Locale::Country
1074 ISO codes for country identification (ISO 3166)
1076 =item Locale::Currency
1078 ISO three letter codes for currency identification (ISO 4217)
1080 =item Locale::Language
1082 ISO two letter codes for language identification (ISO 639)
1084 =item Locale::Maketext
1086 Framework for localization
1088 =item Locale::Maketext::Simple
1090 Simple interface to Locale::Maketext::Lexicon
1092 =item Locale::Maketext::TPJ13
1094 Article about software localization
1096 =item Locale::Script
1098 ISO codes for script identification (ISO 15924)
1102 A generic message storing mechanism;
1104 =item Log::Message::Config
1106 Configuration options for Log::Message
1108 =item Log::Message::Handlers
1110 Message handlers for Log::Message
1112 =item Log::Message::Item
1114 Message objects for Log::Message
1118 Encoding and decoding of base64 strings
1120 =item MIME::QuotedPrint
1122 Encoding and decoding of quoted-printable strings
1124 =item Math::BigFloat
1126 Arbitrary size floating point math package
1130 Arbitrary size integer/float math package
1132 =item Math::BigInt::Calc
1134 Pure Perl module to support Math::BigInt
1136 =item Math::BigInt::CalcEmu
1138 Emulate low-level math with BigInt code
1140 =item Math::BigInt::FastCalc
1142 Math::BigInt::Calc with some XS for more speed
1146 Arbitrary big rational numbers
1150 Complex numbers and associated mathematical functions
1154 Trigonometric functions
1158 Make functions faster by trading space for time
1160 =item Memoize::AnyDBM_File
1162 Glue to provide EXISTS for AnyDBM_File for Storable use
1164 =item Memoize::Expire
1166 Plug-in module for automatic expiration of memoized values
1168 =item Memoize::ExpireFile
1170 Test for Memoize expiration semantics
1172 =item Memoize::ExpireTest
1174 Test for Memoize expiration semantics
1176 =item Memoize::NDBM_File
1178 Glue to provide EXISTS for NDBM_File for Storable use
1180 =item Memoize::SDBM_File
1182 Glue to provide EXISTS for SDBM_File for Storable use
1184 =item Memoize::Storable
1186 Store Memoized data in Storable database
1190 Build and install Perl modules
1192 =item Module::Build::API
1194 API Reference for Module Authors
1196 =item Module::Build::Authoring
1198 Authoring Module::Build modules
1200 =item Module::Build::Base
1202 Default methods for Module::Build
1204 =item Module::Build::Compat
1206 Compatibility with ExtUtils::MakeMaker
1208 =item Module::Build::ConfigData
1210 Configuration for Module::Build
1212 =item Module::Build::Cookbook
1214 Examples of Module::Build Usage
1216 =item Module::Build::ModuleInfo
1218 Gather package and POD information from a perl module files
1220 =item Module::Build::Notes
1222 Configuration for $module_name
1224 =item Module::Build::PPMMaker
1226 Perl Package Manager file creation
1228 =item Module::Build::Platform::Amiga
1230 Builder class for Amiga platforms
1232 =item Module::Build::Platform::Default
1234 Stub class for unknown platforms
1236 =item Module::Build::Platform::EBCDIC
1238 Builder class for EBCDIC platforms
1240 =item Module::Build::Platform::MPEiX
1242 Builder class for MPEiX platforms
1244 =item Module::Build::Platform::MacOS
1246 Builder class for MacOS platforms
1248 =item Module::Build::Platform::RiscOS
1250 Builder class for RiscOS platforms
1252 =item Module::Build::Platform::Unix
1254 Builder class for Unix platforms
1256 =item Module::Build::Platform::VMS
1258 Builder class for VMS platforms
1260 =item Module::Build::Platform::VOS
1262 Builder class for VOS platforms
1264 =item Module::Build::Platform::Windows
1266 Builder class for Windows platforms
1268 =item Module::Build::Platform::aix
1270 Builder class for AIX platform
1272 =item Module::Build::Platform::cygwin
1274 Builder class for Cygwin platform
1276 =item Module::Build::Platform::darwin
1278 Builder class for Mac OS X platform
1280 =item Module::Build::Platform::os2
1282 Builder class for OS/2 platform
1284 =item Module::Build::YAML
1286 Provides just enough YAML support so that Module::Build works even if YAML.pm is not installed
1288 =item Module::CoreList
1290 What modules shipped with versions of perl
1294 Runtime require of both modules and files
1296 =item Module::Load::Conditional
1298 Looking up module information / loading at runtime
1300 =item Module::Loaded
1302 Mark modules as loaded or unloaded
1304 =item Module::Pluggable
1306 Automatically give your module the ability to have plugins
1308 =item Module::Pluggable::Object
1310 Automatically give your module the ability to have plugins
1314 Tied access to ndbm files
1318 Provide a pseudo-class NEXT (et al) that allows method redispatch
1322 Network Command class (as used by FTP, SMTP etc)
1326 Local configuration data for libnet
1330 Attempt to evaluate the current host's internet name and domain
1342 OO interface to users netrc file
1346 Post Office Protocol 3 Client class (RFC1939)
1350 Check a remote host for reachability
1354 Simple Mail Transfer Protocol Client
1358 Time and daytime network client interface
1362 By-name interface to Perl's built-in gethost*() functions
1364 =item Net::libnetFAQ
1366 Libnet Frequently Asked Questions
1370 By-name interface to Perl's built-in getnet*() functions
1374 By-name interface to Perl's built-in getproto*() functions
1378 By-name interface to Perl's built-in getserv*() functions
1382 Generic interface to Perl Compiler backends
1386 Tied access to odbm files
1390 Disable named opcodes when compiling perl code
1394 Perl interface to IEEE Std 1003.1
1396 =item Package::Constants
1398 List all constants declared in a package
1402 A generic input parsing/checking mechanism.
1406 On demand loader for PerlIO layers and root of PerlIO::* name space
1408 =item PerlIO::encoding
1412 =item PerlIO::scalar
1414 In-memory IO, scalar IO
1418 Helper class for PerlIO layers implemented in perl
1420 =item PerlIO::via::QuotedPrint
1422 PerlIO layer for quoted-printable strings
1426 Check pod documents for syntax errors
1430 For resolving Pod EE<lt>...E<gt> sequences
1434 Find POD documents in directory trees
1436 =item Pod::Functions
1438 Group Perl's functions a la perlfunc.pod
1442 Module to convert pod files to HTML
1444 =item Pod::InputObjects
1446 Objects representing POD input paragraphs, commands, etc.
1450 Convert Pod data to formatted Latex
1454 Convert POD data to formatted *roff input
1456 =item Pod::ParseLink
1458 Parse an LE<lt>E<gt> formatting code in POD text
1460 =item Pod::ParseUtils
1462 Helpers for POD parsing and conversion
1466 Base class for creating POD filters and translators
1468 =item Pod::Perldoc::ToChecker
1470 Let Perldoc check Pod for errors
1472 =item Pod::Perldoc::ToMan
1474 Let Perldoc render Pod as man pages
1476 =item Pod::Perldoc::ToNroff
1478 Let Perldoc convert Pod to nroff
1480 =item Pod::Perldoc::ToPod
1482 Let Perldoc render Pod as ... Pod!
1484 =item Pod::Perldoc::ToRtf
1486 Let Perldoc render Pod as RTF
1488 =item Pod::Perldoc::ToText
1490 Let Perldoc render Pod as plaintext
1492 =item Pod::Perldoc::ToTk
1494 Let Perldoc use Tk::Pod to render Pod
1496 =item Pod::Perldoc::ToXml
1498 Let Perldoc render Pod as XML
1500 =item Pod::PlainText
1502 Convert POD data to formatted ASCII text
1506 Perl extension for converting Pod to old style Pod.
1510 Extract selected sections of POD from input
1514 Framework for parsing Pod
1516 =item Pod::Simple::Checker
1518 Check the Pod syntax of a document
1520 =item Pod::Simple::Debug
1522 Put Pod::Simple into trace/debug mode
1524 =item Pod::Simple::DumpAsText
1526 Dump Pod-parsing events as text
1528 =item Pod::Simple::DumpAsXML
1532 =item Pod::Simple::HTML
1536 =item Pod::Simple::HTMLBatch
1538 Convert several Pod files to several HTML files
1540 =item Pod::Simple::LinkSection
1542 Represent "section" attributes of L codes
1544 =item Pod::Simple::Methody
1546 Turn Pod::Simple events into method calls
1548 =item Pod::Simple::PullParser
1550 A pull-parser interface to parsing Pod
1552 =item Pod::Simple::PullParserEndToken
1554 End-tokens from Pod::Simple::PullParser
1556 =item Pod::Simple::PullParserStartToken
1558 Start-tokens from Pod::Simple::PullParser
1560 =item Pod::Simple::PullParserTextToken
1562 Text-tokens from Pod::Simple::PullParser
1564 =item Pod::Simple::PullParserToken
1566 Tokens from Pod::Simple::PullParser
1568 =item Pod::Simple::RTF
1572 =item Pod::Simple::Search
1574 Find POD documents in directory trees
1576 =item Pod::Simple::SimpleTree
1578 Parse Pod into a simple parse tree
1580 =item Pod::Simple::Subclassing
1582 Write a formatter as a Pod::Simple subclass
1584 =item Pod::Simple::Text
1586 Format Pod as plaintext
1588 =item Pod::Simple::TextContent
1590 Get the text content of Pod
1592 =item Pod::Simple::XMLOutStream
1598 Convert POD data to formatted ASCII text
1600 =item Pod::Text::Color
1602 Convert POD data to formatted color ASCII text
1604 =item Pod::Text::Overstrike
1606 Convert POD data to formatted overstrike text
1608 =item Pod::Text::Termcap
1610 Convert POD data to ASCII text with format escapes
1614 Print a usage message from embedded pod documentation
1618 Tied access to sdbm files
1622 Compile and execute code in restricted compartments
1626 A selection of general-utility scalar subroutines
1630 Search for key in dictionary file
1634 Save and restore selected file handle
1638 Load functions only on demand
1642 Run shell commands transparently within perl
1646 Load the C socket.h defines and structure manipulators
1650 Persistence for Perl data structures
1654 A switch statement for Perl
1658 Manipulate Perl symbols and their names
1662 Try every conceivable way to get hostname
1666 Perl interface to the UNIX syslog(3) calls
1668 =item Sys::Syslog::win32::Win32
1670 Win32 support for Sys::Syslog
1674 Base class that provides common functionality to L<TAP::Parser> and L<TAP::Harness>
1676 =item TAP::Formatter::Color
1678 Run Perl test scripts with color
1680 =item TAP::Formatter::Console
1682 Harness output delegate for default console output
1684 =item TAP::Formatter::Console::ParallelSession
1686 Harness output delegate for parallel console output
1688 =item TAP::Formatter::Console::Session
1690 Harness output delegate for default console output
1694 Run test scripts with statistics
1698 Parse L<TAP|Test::Harness::TAP> output
1700 =item TAP::Parser::Aggregator
1702 Aggregate TAP::Parser results
1704 =item TAP::Parser::Grammar
1706 A grammar for the Test Anything Protocol.
1708 =item TAP::Parser::Iterator
1710 Internal TAP::Parser Iterator
1712 =item TAP::Parser::Iterator::Array
1714 Internal TAP::Parser Iterator
1716 =item TAP::Parser::Iterator::Process
1718 Internal TAP::Parser Iterator
1720 =item TAP::Parser::Iterator::Stream
1722 Internal TAP::Parser Iterator
1724 =item TAP::Parser::Multiplexer
1726 Multiplex multiple TAP::Parsers
1728 =item TAP::Parser::Result
1732 =item TAP::Parser::Result::Bailout
1734 Bailout result token.
1736 =item TAP::Parser::Result::Comment
1738 Comment result token.
1740 =item TAP::Parser::Result::Plan
1744 =item TAP::Parser::Result::Pragma
1748 =item TAP::Parser::Result::Test
1752 =item TAP::Parser::Result::Unknown
1754 Unknown result token.
1756 =item TAP::Parser::Result::Version
1758 TAP syntax version token.
1760 =item TAP::Parser::Result::YAML
1764 =item TAP::Parser::Source
1766 Stream output from some source
1768 =item TAP::Parser::Source::Perl
1772 =item TAP::Parser::Utils
1774 Internal TAP::Parser utilities
1776 =item TAP::Parser::YAMLish::Reader
1778 Read YAMLish data from iterator
1780 =item TAP::Parser::YAMLish::Writer
1784 =item Term::ANSIColor
1786 Color screen output using ANSI escape sequences
1790 Perl termcap interface
1792 =item Term::Complete
1794 Perl word completion module
1796 =item Term::ReadLine
1798 Perl interface to various C<readline> packages.
1802 Term::ReadLine UI made easy
1806 Provides a simple framework for writing test scripts
1810 Backend for building test libraries
1812 =item Test::Builder::Module
1814 Base class for test modules
1816 =item Test::Builder::Tester
1818 Test testsuites that have been built with
1820 =item Test::Builder::Tester::Color
1822 Turn on colour in Test::Builder::Tester
1826 Run Perl standard test scripts with statistics
1830 Yet another framework for writing test scripts
1834 Basic utilities for writing tests.
1836 =item Test::Tutorial
1838 A tutorial about writing really basic tests
1842 Create an abbreviation table from a list
1844 =item Text::Balanced
1846 Extract delimited text sequences from strings.
1848 =item Text::ParseWords
1850 Parse text into an array of tokens or array of arrays
1854 Implementation of the soundex algorithm.
1858 Expand and unexpand tabs per the unix expand(1) and unexpand(1)
1862 Line wrapping to form simple paragraphs
1866 Manipulate threads in Perl (for old code only)
1872 =item Thread::Semaphore
1874 Thread-safe semaphores
1878 Base class for tied arrays
1882 Access the lines of a disk file via a Perl array
1886 Base class definitions for tied handles
1890 Base class definitions for tied hashes
1892 =item Tie::Hash::NamedCapture
1894 Named regexp capture buffers
1898 Add data to hash when needed
1902 Use references as hash keys
1906 Base class definitions for tied scalars
1908 =item Tie::SubstrHash
1910 Fixed-table-size, fixed-key-length hashing
1914 High resolution alarm, sleep, gettimeofday, interval timers
1918 Efficiently compute time from local and GMT time
1922 Object Oriented time objects
1924 =item Time::Piece::Seconds
1926 A simple API to convert seconds to other date values
1930 By-name interface to Perl's built-in gmtime() function
1932 =item Time::localtime
1934 By-name interface to Perl's built-in localtime() function
1938 Internal object used by Time::gmtime and Time::localtime
1942 Base class for ALL classes (blessed references)
1944 =item Unicode::Collate
1946 Unicode Collation Algorithm
1948 =item Unicode::Normalize
1950 Unicode Normalization Forms
1954 Unicode character database
1958 By-name interface to Perl's built-in getgr*() functions
1962 By-name interface to Perl's built-in getpw*() functions
1966 Interfaces to some Win32 API Functions
1968 =item Win32API::File
1970 Low-level access to Win32 system API calls for files/dirs.
1974 Win32 CORE function stubs
1982 Module to test the XS typemaps distributed with perl
1986 Dynamically load C libraries into Perl code
1990 To find out I<all> modules installed on your system, including
1991 those without documentation or outside the standard release,
1992 just use the following command (under the default win32 shell,
1993 double quotes should be used instead of single quotes).
1995 % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
1996 'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
1997 no_chdir => 1 }, @INC'
1999 (The -T is here to prevent '.' from being listed in @INC.)
2000 They should all have their own documentation installed and accessible
2001 via your system man(1) command. If you do not have a B<find>
2002 program, you can use the Perl B<find2perl> program instead, which
2003 generates Perl code as output you can run through perl. If you
2004 have a B<man> program but it doesn't find your modules, you'll have
2005 to fix your manpath. See L<perl> for details. If you have no
2006 system B<man> command, you might try the B<perldoc> program.
2008 Note also that the command C<perldoc perllocal> gives you a (possibly
2009 incomplete) list of the modules that have been further installed on
2010 your system. (The perllocal.pod file is updated by the standard MakeMaker
2013 =head2 Extension Modules
2015 Extension modules are written in C (or a mix of Perl and C). They
2016 are usually dynamically loaded into Perl if and when you need them,
2017 but may also be linked in statically. Supported extension modules
2018 include Socket, Fcntl, and POSIX.
2020 Many popular C extension modules do not come bundled (at least, not
2021 completely) due to their sizes, volatility, or simply lack of time
2022 for adequate testing and configuration across the multitude of
2023 platforms on which Perl was beta-tested. You are encouraged to
2024 look for them on CPAN (described below), or using web search engines
2025 like Alta Vista or Google.
2029 CPAN stands for Comprehensive Perl Archive Network; it's a globally
2030 replicated trove of Perl materials, including documentation, style
2031 guides, tricks and traps, alternate ports to non-Unix systems and
2032 occasional binary distributions for these. Search engines for
2033 CPAN can be found at http://www.cpan.org/
2035 Most importantly, CPAN includes around a thousand unbundled modules,
2036 some of which require a C compiler to build. Major categories of
2043 Language Extensions and Documentation Tools
2051 Operating System Interfaces
2055 Networking, Device Control (modems) and InterProcess Communication
2059 Data Types and Data Type Utilities
2071 Interfaces to / Emulations of Other Programming Languages
2075 File Names, File Systems and File Locking (see also File Handles)
2079 String Processing, Language Text Processing, Parsing, and Searching
2083 Option, Argument, Parameter, and Configuration File Processing
2087 Internationalization and Locale
2091 Authentication, Security, and Encryption
2095 World Wide Web, HTML, HTTP, CGI, MIME
2099 Server and Daemon Utilities
2103 Archiving and Compression
2107 Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
2111 Mail and Usenet News
2115 Control Flow Utilities (callbacks and exceptions etc)
2119 File Handle and Input/Output Stream Utilities
2123 Miscellaneous Modules
2127 The list of the registered CPAN sites as of this writing follows.
2128 Please note that the sorting order is alphabetical on fields:
2134 |-->[state/province]
2140 and thus the North American servers happen to be listed between the
2141 European and the South American sites.
2143 You should try to choose one close to you.
2151 http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
2152 ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
2153 ftp://ftp.is.co.za/programming/perl/CPAN/
2154 ftp://ftp.saix.net/pub/CPAN/
2155 ftp://ftp.sun.ac.za/CPAN/CPAN/
2165 http://cpan.linuxforum.net/
2166 http://cpan.shellhung.org/
2167 ftp://ftp.shellhung.org/pub/CPAN
2168 ftp://mirrors.hknet.com/CPAN
2172 http://mirrors.tf.itb.ac.id/cpan/
2173 http://cpan.cbn.net.id/
2174 ftp://ftp.cbn.net.id/mirror/CPAN
2178 ftp://ftp.iglu.org.il/pub/CPAN/
2179 http://cpan.lerner.co.il/
2180 http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
2181 ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
2185 ftp://ftp.u-aizu.ac.jp/pub/CPAN
2186 ftp://ftp.kddlabs.co.jp/CPAN/
2187 ftp://ftp.ayamura.org/pub/CPAN/
2188 ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
2190 ftp://ftp.cpan.jp/CPAN/
2191 ftp://ftp.dti.ad.jp/pub/lang/CPAN/
2192 ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
2196 http://cpan.MyBSD.org.my
2197 http://mirror.leafbug.org/pub/CPAN
2198 http://ossig.mncc.com.my/mirror/pub/CPAN
2200 =item Russian Federation
2202 http://cpan.tomsk.ru
2203 ftp://cpan.tomsk.ru/
2207 ftp://ftp.isu.net.sa/pub/CPAN/
2211 http://CPAN.en.com.sg/
2212 ftp://cpan.en.com.sg/
2213 http://mirror.averse.net/pub/CPAN
2214 ftp://mirror.averse.net/pub/CPAN
2215 http://cpan.oss.eznetsols.org
2216 ftp://ftp.oss.eznetsols.org/cpan
2220 http://CPAN.bora.net/
2221 ftp://ftp.bora.net/pub/CPAN/
2222 http://mirror.kr.FreeBSD.org/CPAN
2223 ftp://ftp.kr.FreeBSD.org/pub/CPAN
2227 ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
2228 http://cpan.cdpa.nsysu.edu.tw/
2229 ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
2230 http://ftp.isu.edu.tw/pub/CPAN
2231 ftp://ftp.isu.edu.tw/pub/CPAN
2232 ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
2233 http://ftp.tku.edu.tw/pub/CPAN/
2234 ftp://ftp.tku.edu.tw/pub/CPAN/
2238 ftp://ftp.loxinfo.co.th/pub/cpan/
2239 ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
2243 =head2 Central America
2249 http://ftp.ucr.ac.cr/Unix/CPAN/
2250 ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
2260 http://cpan.inode.at/
2262 ftp://ftp.tuwien.ac.at/pub/CPAN/
2266 http://ftp.easynet.be/pub/CPAN/
2267 ftp://ftp.easynet.be/pub/CPAN/
2268 http://cpan.skynet.be
2269 ftp://ftp.cpan.skynet.be/pub/CPAN
2270 ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
2272 =item Bosnia and Herzegovina
2274 http://cpan.blic.net/
2278 http://cpan.online.bg
2279 ftp://cpan.online.bg/cpan
2280 http://cpan.zadnik.org
2281 ftp://ftp.zadnik.org/mirrors/CPAN/
2282 http://cpan.lirex.net/
2283 ftp://ftp.lirex.net/pub/mirrors/CPAN
2287 http://ftp.linux.hr/pub/CPAN/
2288 ftp://ftp.linux.hr/pub/CPAN/
2290 =item Czech Republic
2292 ftp://ftp.fi.muni.cz/pub/CPAN/
2293 ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
2297 http://mirrors.sunsite.dk/cpan/
2298 ftp://sunsite.dk/mirrors/cpan/
2299 http://cpan.cybercity.dk
2300 http://www.cpan.dk/CPAN/
2301 ftp://www.cpan.dk/ftp.cpan.org/CPAN/
2305 ftp://ftp.ut.ee/pub/languages/perl/CPAN/
2309 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
2310 http://mirror.eunet.fi/CPAN
2314 http://www.enstimac.fr/Perl/CPAN
2315 http://ftp.u-paris10.fr/perl/CPAN
2316 ftp://ftp.u-paris10.fr/perl/CPAN
2317 http://cpan.mirrors.easynet.fr/
2318 ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
2319 ftp://ftp.club-internet.fr/pub/perl/CPAN/
2321 ftp://ftp.lip6.fr/pub/perl/CPAN/
2322 ftp://ftp.oleane.net/pub/mirrors/CPAN/
2323 ftp://ftp.pasteur.fr/pub/computing/CPAN/
2324 http://mir2.ovh.net/ftp.cpan.org
2325 ftp://mir1.ovh.net/ftp.cpan.org
2326 http://ftp.crihan.fr/mirrors/ftp.cpan.org/
2327 ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
2328 http://ftp.u-strasbg.fr/CPAN
2329 ftp://ftp.u-strasbg.fr/CPAN
2330 ftp://cpan.cict.fr/pub/CPAN/
2331 ftp://ftp.uvsq.fr/pub/perl/CPAN/
2335 ftp://ftp.rub.de/pub/CPAN/
2336 ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
2337 ftp://ftp.uni-erlangen.de/pub/source/CPAN/
2338 ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
2339 http://pandemonium.tiscali.de/pub/CPAN/
2340 ftp://pandemonium.tiscali.de/pub/CPAN/
2341 http://ftp.gwdg.de/pub/languages/perl/CPAN/
2342 ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
2343 ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
2344 ftp://ftp.leo.org/pub/CPAN/
2345 http://cpan.noris.de/
2346 ftp://cpan.noris.de/pub/CPAN/
2347 ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
2348 ftp://ftp.gmd.de/mirrors/CPAN/
2352 ftp://ftp.acn.gr/pub/lang/perl
2353 ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
2354 ftp://ftp.ntua.gr/pub/lang/perl/
2358 http://ftp.kfki.hu/packages/perl/CPAN/
2359 ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
2363 http://ftp.rhnet.is/pub/CPAN/
2364 ftp://ftp.rhnet.is/pub/CPAN/
2368 http://cpan.indigo.ie/
2369 ftp://cpan.indigo.ie/pub/CPAN/
2370 http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2371 ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2372 http://sunsite.compapp.dcu.ie/pub/perl/
2373 ftp://sunsite.compapp.dcu.ie/pub/perl/
2377 http://cpan.nettuno.it/
2378 http://gusp.dyndns.org/CPAN/
2379 ftp://gusp.dyndns.org/pub/CPAN
2380 http://softcity.iol.it/cpan
2381 ftp://softcity.iol.it/pub/cpan
2382 ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
2383 ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
2384 ftp://cis.uniRoma2.it/CPAN/
2385 ftp://ftp.edisontel.it/pub/CPAN_Mirror/
2386 http://cpan.flashnet.it/
2387 ftp://ftp.flashnet.it/pub/CPAN/
2391 http://kvin.lv/pub/CPAN/
2395 ftp://ftp.unix.lt/pub/CPAN/
2399 ftp://download.xs4all.nl/pub/mirror/CPAN/
2400 ftp://ftp.nl.uu.net/pub/CPAN/
2401 ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
2402 http://cpan.cybercomm.nl/
2403 ftp://mirror.cybercomm.nl/pub/CPAN
2404 ftp://mirror.vuurwerk.nl/pub/CPAN/
2405 ftp://ftp.cpan.nl/pub/CPAN/
2406 http://ftp.easynet.nl/mirror/CPAN
2407 ftp://ftp.easynet.nl/mirror/CPAN
2408 http://archive.cs.uu.nl/mirror/CPAN/
2409 ftp://ftp.cs.uu.nl/mirror/CPAN/
2413 ftp://ftp.uninett.no/pub/languages/perl/CPAN
2414 ftp://ftp.uit.no/pub/languages/perl/cpan/
2418 ftp://ftp.mega.net.pl/CPAN
2419 ftp://ftp.man.torun.pl/pub/doc/CPAN/
2420 ftp://sunsite.icm.edu.pl/pub/CPAN/
2424 ftp://ftp.ua.pt/pub/CPAN/
2425 ftp://perl.di.uminho.pt/pub/CPAN/
2426 http://cpan.dei.uc.pt/
2427 ftp://ftp.dei.uc.pt/pub/CPAN
2428 ftp://ftp.nfsi.pt/pub/CPAN
2429 http://ftp.linux.pt/pub/mirrors/CPAN
2430 ftp://ftp.linux.pt/pub/mirrors/CPAN
2432 ftp://cpan.ip.pt/pub/cpan/
2433 http://cpan.telepac.pt/
2434 ftp://ftp.telepac.pt/pub/cpan/
2438 ftp://ftp.bio-net.ro/pub/CPAN
2439 ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
2440 ftp://ftp.lug.ro/CPAN
2441 ftp://ftp.roedu.net/pub/CPAN/
2442 ftp://ftp.dntis.ro/pub/cpan/
2443 ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
2444 http://cpan.ambra.ro/
2445 ftp://ftp.ambra.ro/pub/CPAN
2446 ftp://ftp.dnttm.ro/pub/CPAN/
2447 ftp://ftp.lasting.ro/pub/CPAN
2448 ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
2452 ftp://ftp.chg.ru/pub/lang/perl/CPAN/
2453 http://cpan.rinet.ru/
2454 ftp://cpan.rinet.ru/pub/mirror/CPAN/
2455 ftp://ftp.aha.ru/pub/CPAN/
2456 ftp://ftp.corbina.ru/pub/CPAN/
2457 http://cpan.sai.msu.ru/
2458 ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
2462 ftp://ftp.cvt.stuba.sk/pub/CPAN/
2466 ftp://ftp.arnes.si/software/perl/CPAN/
2470 http://cpan.imasd.elmundo.es/
2471 ftp://ftp.rediris.es/mirror/CPAN/
2472 ftp://ftp.ri.telefonica-data.net/CPAN
2473 ftp://ftp.etse.urv.es/pub/perl/
2477 http://ftp.du.se/CPAN/
2478 ftp://ftp.du.se/pub/CPAN/
2479 http://mirror.dataphone.se/CPAN
2480 ftp://mirror.dataphone.se/pub/CPAN
2481 ftp://ftp.sunet.se/pub/lang/perl/CPAN/
2485 http://cpan.mirror.solnet.ch/
2486 ftp://ftp.solnet.ch/mirror/CPAN/
2487 ftp://ftp.danyk.ch/CPAN/
2488 ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
2492 http://ftp.ulak.net.tr/perl/CPAN/
2493 ftp://ftp.ulak.net.tr/perl/CPAN
2494 ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
2500 ftp://ftp.perl.org.ua/pub/CPAN/
2501 http://no-more.kiev.ua/CPAN/
2502 ftp://no-more.kiev.ua/pub/CPAN/
2504 =item United Kingdom
2506 http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
2507 ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
2508 http://cpan.teleglobe.net/
2509 ftp://cpan.teleglobe.net/pub/CPAN
2510 http://cpan.mirror.anlx.net/
2511 ftp://ftp.mirror.anlx.net/CPAN/
2512 http://cpan.etla.org/
2513 ftp://cpan.etla.org/pub/CPAN
2514 ftp://ftp.demon.co.uk/pub/CPAN/
2515 http://cpan.m.flirble.org/
2516 ftp://ftp.flirble.org/pub/languages/perl/CPAN/
2517 ftp://ftp.plig.org/pub/CPAN/
2518 http://cpan.hambule.co.uk/
2519 http://cpan.mirrors.clockerz.net/
2520 ftp://ftp.clockerz.net/pub/CPAN/
2521 ftp://usit.shef.ac.uk/pub/packages/CPAN/
2525 =head2 North America
2535 http://cpan.sunsite.ualberta.ca/
2536 ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
2540 http://theoryx5.uwinnipeg.ca/pub/CPAN/
2541 ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
2545 ftp://cpan.chebucto.ns.ca/pub/CPAN/
2549 ftp://ftp.nrc.ca/pub/CPAN/
2555 http://cpan.azc.uam.mx
2556 ftp://cpan.azc.uam.mx/mirrors/CPAN
2557 http://www.cpan.unam.mx/
2558 ftp://ftp.unam.mx/pub/CPAN
2559 http://www.msg.com.mx/CPAN/
2560 ftp://ftp.msg.com.mx/pub/CPAN/
2568 http://mirror.hiwaay.net/CPAN/
2569 ftp://mirror.hiwaay.net/CPAN/
2573 http://cpan.develooper.com/
2574 http://www.cpan.org/
2575 ftp://cpan.valueclick.com/pub/CPAN/
2576 http://www.mednor.net/ftp/pub/mirrors/CPAN/
2577 ftp://ftp.mednor.net/pub/mirrors/CPAN/
2578 http://mirrors.gossamer-threads.com/CPAN
2579 ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
2580 http://mirrors.kernel.org/cpan/
2581 ftp://mirrors.kernel.org/pub/CPAN
2582 http://cpan-sj.viaverio.com/
2583 ftp://cpan-sj.viaverio.com/pub/CPAN/
2584 http://cpan.digisle.net/
2585 ftp://cpan.digisle.net/pub/CPAN
2586 http://www.perl.com/CPAN/
2587 http://www.uberlan.net/CPAN
2591 ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
2592 http://cpan.four10.com
2596 http://ftp.lug.udel.edu/pub/CPAN
2597 ftp://ftp.lug.udel.edu/pub/CPAN
2599 =item District of Columbia
2601 ftp://ftp.dc.aleron.net/pub/CPAN/
2605 ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
2606 http://mirror.csit.fsu.edu/pub/CPAN/
2607 ftp://mirror.csit.fsu.edu/pub/CPAN/
2608 http://cpan.mirrors.nks.net/
2612 ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
2613 http://cpan.netnitco.net/
2614 ftp://cpan.netnitco.net/pub/mirrors/CPAN/
2615 http://archive.progeny.com/CPAN/
2616 ftp://archive.progeny.com/CPAN/
2617 http://fx.saintjoe.edu/pub/CPAN
2618 ftp://ftp.saintjoe.edu/pub/CPAN
2619 http://csociety-ftp.ecn.purdue.edu/pub/CPAN
2620 ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
2624 http://cpan.uky.edu/
2625 ftp://cpan.uky.edu/pub/CPAN/
2626 http://slugsite.louisville.edu/cpan
2627 ftp://slugsite.louisville.edu/CPAN
2631 http://mirrors.towardex.com/CPAN
2632 ftp://mirrors.towardex.com/pub/CPAN
2633 ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
2637 ftp://cpan.cse.msu.edu/
2638 http://cpan.calvin.edu/pub/CPAN
2639 ftp://cpan.calvin.edu/pub/CPAN
2643 http://www.oss.redundant.com/pub/CPAN
2644 ftp://www.oss.redundant.com/pub/CPAN
2648 http://ftp.cpanel.net/pub/CPAN/
2649 ftp://ftp.cpanel.net/pub/CPAN/
2650 http://cpan.teleglobe.net/
2651 ftp://cpan.teleglobe.net/pub/CPAN
2655 http://cpan.belfry.net/
2656 http://cpan.erlbaum.net/
2657 ftp://cpan.erlbaum.net/
2658 http://cpan.thepirtgroup.com/
2659 ftp://cpan.thepirtgroup.com/
2660 ftp://ftp.stealth.net/pub/CPAN/
2661 http://www.rge.com/pub/languages/perl/
2662 ftp://ftp.rge.com/pub/languages/perl/
2664 =item North Carolina
2666 http://www.ibiblio.org/pub/languages/perl/CPAN
2667 ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
2668 ftp://ftp.duke.edu/pub/perl/
2669 ftp://ftp.ncsu.edu/pub/mirror/CPAN/
2673 ftp://ftp.ou.edu/mirrors/CPAN/
2677 ftp://ftp.orst.edu/pub/CPAN
2681 http://ftp.epix.net/CPAN/
2682 ftp://ftp.epix.net/pub/languages/perl/
2683 http://mirrors.phenominet.com/pub/CPAN/
2684 ftp://mirrors.phenominet.com/pub/CPAN/
2685 http://cpan.pair.com/
2686 ftp://cpan.pair.com/pub/CPAN/
2687 ftp://carroll.cac.psu.edu/pub/CPAN/
2691 ftp://ftp.sunsite.utk.edu/pub/CPAN/
2695 http://ftp.sedl.org/pub/mirrors/CPAN/
2696 http://www.binarycode.org/cpan
2697 ftp://mirror.telentente.com/pub/CPAN
2698 http://mirrors.theonlinerecordstore.com/CPAN
2702 ftp://mirror.xmission.com/CPAN/
2706 http://cpan-du.viaverio.com/
2707 ftp://cpan-du.viaverio.com/pub/CPAN/
2708 http://mirrors.rcn.net/pub/lang/CPAN/
2709 ftp://mirrors.rcn.net/pub/lang/CPAN/
2710 http://perl.secsup.org/
2711 ftp://perl.secsup.org/pub/perl/
2712 http://noc.cvaix.com/mirrors/CPAN/
2716 http://cpan.llarian.net/
2717 ftp://cpan.llarian.net/pub/CPAN/
2718 http://cpan.mirrorcentral.com/
2719 ftp://ftp.mirrorcentral.com/pub/CPAN/
2720 ftp://ftp-mirror.internap.com/pub/CPAN/
2724 http://mirror.sit.wisc.edu/pub/CPAN/
2725 ftp://mirror.sit.wisc.edu/pub/CPAN/
2726 http://mirror.aphix.com/CPAN
2727 ftp://mirror.aphix.com/pub/CPAN
2739 http://ftp.planetmirror.com/pub/CPAN/
2740 ftp://ftp.planetmirror.com/pub/CPAN/
2741 ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
2742 ftp://cpan.topend.com.au/pub/CPAN/
2743 http://cpan.mirrors.ilisys.com.au
2747 ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
2751 http://aniani.ifa.hawaii.edu/CPAN/
2752 ftp://aniani.ifa.hawaii.edu/CPAN/
2756 =head2 South America
2762 ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
2763 http://www.linux.org.ar/mirrors/cpan
2764 ftp://ftp.linux.org.ar/mirrors/cpan
2768 ftp://cpan.pop-mg.com.br/pub/CPAN/
2769 ftp://ftp.matrix.com.br/pub/perl/CPAN/
2770 http://cpan.hostsul.com.br/
2771 ftp://cpan.hostsul.com.br/
2775 http://cpan.netglobalis.net/
2776 ftp://cpan.netglobalis.net/pub/CPAN/
2780 =head2 RSYNC Mirrors
2782 www.linux.org.ar::cpan
2783 theoryx5.uwinnipeg.ca::CPAN
2784 ftp.shellhung.org::CPAN
2785 rsync.nic.funet.fi::CPAN
2786 ftp.u-paris10.fr::CPAN
2788 rsync://ftp.crihan.fr::CPAN
2789 ftp.gwdg.de::FTP/languages/perl/CPAN/
2791 ftp.cbn.net.id::CPAN
2792 rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2793 ftp.iglu.org.il::CPAN
2794 gusp.dyndns.org::cpan
2795 ftp.kddlabs.co.jp::cpan
2796 ftp.ayamura.org::pub/CPAN/
2797 mirror.leafbug.org::CPAN
2798 rsync.en.com.sg::CPAN
2799 mirror.averse.net::cpan
2800 rsync.oss.eznetsols.org
2801 ftp.kr.FreeBSD.org::CPAN
2803 cpan.cdpa.nsysu.edu.tw::CPAN
2804 cpan.teleglobe.net::CPAN
2805 rsync://rsync.mirror.anlx.net::CPAN
2808 cpan-du.viaverio.com::CPAN
2809 aniani.ifa.hawaii.edu::CPAN
2810 archive.progeny.com::CPAN
2811 rsync://slugsite.louisville.edu::CPAN
2812 mirror.aphix.com::CPAN
2813 cpan.teleglobe.net::CPAN
2814 ftp.lug.udel.edu::cpan
2815 mirrors.kernel.org::mirrors/CPAN
2816 mirrors.phenominet.com::CPAN
2818 cpan-sj.viaverio.com::CPAN
2819 mirror.csit.fsu.edu::CPAN
2820 csociety-ftp.ecn.purdue.edu::CPAN
2822 For an up-to-date listing of CPAN sites,
2823 see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
2825 =head1 Modules: Creation, Use, and Abuse
2827 (The following section is borrowed directly from Tim Bunce's modules
2828 file, available at your nearest CPAN site.)
2830 Perl implements a class using a package, but the presence of a
2831 package doesn't imply the presence of a class. A package is just a
2832 namespace. A class is a package that provides subroutines that can be
2833 used as methods. A method is just a subroutine that expects, as its
2834 first argument, either the name of a package (for "static" methods),
2835 or a reference to something (for "virtual" methods).
2837 A module is a file that (by convention) provides a class of the same
2838 name (sans the .pm), plus an import method in that class that can be
2839 called to fetch exported symbols. This module may implement some of
2840 its methods by loading dynamic C or C++ objects, but that should be
2841 totally transparent to the user of the module. Likewise, the module
2842 might set up an AUTOLOAD function to slurp in subroutine definitions on
2843 demand, but this is also transparent. Only the F<.pm> file is required to
2844 exist. See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
2845 the AUTOLOAD mechanism.
2847 =head2 Guidelines for Module Creation
2853 Do similar modules already exist in some form?
2855 If so, please try to reuse the existing modules either in whole or
2856 by inheriting useful features into a new class. If this is not
2857 practical try to get together with the module authors to work on
2858 extending or enhancing the functionality of the existing modules.
2859 A perfect example is the plethora of packages in perl4 for dealing
2860 with command line options.
2862 If you are writing a module to expand an already existing set of
2863 modules, please coordinate with the author of the package. It
2864 helps if you follow the same naming scheme and module interaction
2865 scheme as the original author.
2869 Try to design the new module to be easy to extend and reuse.
2871 Try to C<use warnings;> (or C<use warnings qw(...);>).
2872 Remember that you can add C<no warnings qw(...);> to individual blocks
2873 of code that need less warnings.
2875 Use blessed references. Use the two argument form of bless to bless
2876 into the class name given as the first parameter of the constructor,
2881 return bless {}, $class;
2884 or even this if you'd like it to be used as either a static
2885 or a virtual method.
2889 my $class = ref($self) || $self;
2890 return bless {}, $class;
2893 Pass arrays as references so more parameters can be added later
2894 (it's also faster). Convert functions into methods where
2895 appropriate. Split large methods into smaller more flexible ones.
2896 Inherit methods from other modules if appropriate.
2898 Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
2899 Generally you can delete the C<eq 'FOO'> part with no harm at all.
2900 Let the objects look after themselves! Generally, avoid hard-wired
2901 class names as far as possible.
2903 Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
2904 C<< $r->func() >> would work (see L<perlbot> for more details).
2906 Use autosplit so little used or newly added functions won't be a
2907 burden to programs that don't use them. Add test functions to
2908 the module after __END__ either using AutoSplit or by saying:
2910 eval join('',<main::DATA>) || die $@ unless caller();
2912 Does your module pass the 'empty subclass' test? If you say
2913 C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
2914 to use SUBCLASS in exactly the same way as YOURCLASS. For example,
2915 does your application still work if you change: C<< $obj = YOURCLASS->new(); >>
2916 into: C<< $obj = SUBCLASS->new(); >> ?
2918 Avoid keeping any state information in your packages. It makes it
2919 difficult for multiple other packages to use yours. Keep state
2920 information in objects.
2924 Try to C<use strict;> (or C<use strict qw(...);>).
2925 Remember that you can add C<no strict qw(...);> to individual blocks
2926 of code that need less strictness.
2930 Follow the guidelines in the perlstyle(1) manual.
2936 Some simple style guidelines
2938 The perlstyle manual supplied with Perl has many helpful points.
2940 Coding style is a matter of personal taste. Many people evolve their
2941 style over several years as they learn what helps them write and
2942 maintain good code. Here's one set of assorted suggestions that
2943 seem to be widely used by experienced developers:
2945 Use underscores to separate words. It is generally easier to read
2946 $var_names_like_this than $VarNamesLikeThis, especially for
2947 non-native speakers of English. It's also a simple rule that works
2948 consistently with VAR_NAMES_LIKE_THIS.
2950 Package/Module names are an exception to this rule. Perl informally
2951 reserves lowercase module names for 'pragma' modules like integer
2952 and strict. Other modules normally begin with a capital letter and
2953 use mixed case with no underscores (need to be short and portable).
2955 You may find it helpful to use letter case to indicate the scope
2956 or nature of a variable. For example:
2958 $ALL_CAPS_HERE constants only (beware clashes with Perl vars)
2959 $Some_Caps_Here package-wide global/static
2960 $no_caps_here function scope my() or local() variables
2962 Function and method names seem to work best as all lowercase.
2963 e.g., C<< $obj->as_string() >>.
2965 You can use a leading underscore to indicate that a variable or
2966 function should not be used outside the package that defined it.
2970 Select what to export.
2972 Do NOT export method names!
2974 Do NOT export anything else by default without a good reason!
2976 Exports pollute the namespace of the module user. If you must
2977 export try to use @EXPORT_OK in preference to @EXPORT and avoid
2978 short or common names to reduce the risk of name clashes.
2980 Generally anything not exported is still accessible from outside the
2981 module using the ModuleName::item_name (or C<< $blessed_ref->method >>)
2982 syntax. By convention you can use a leading underscore on names to
2983 indicate informally that they are 'internal' and not for public use.
2985 (It is actually possible to get private functions by saying:
2986 C<my $subref = sub { ... }; &$subref;>. But there's no way to call that
2987 directly as a method, because a method must have a name in the symbol
2990 As a general rule, if the module is trying to be object oriented
2991 then export nothing. If it's just a collection of functions then
2992 @EXPORT_OK anything but use @EXPORT with caution.
2996 Select a name for the module.
2998 This name should be as descriptive, accurate, and complete as
2999 possible. Avoid any risk of ambiguity. Always try to use two or
3000 more whole words. Generally the name should reflect what is special
3001 about what the module does rather than how it does it. Please use
3002 nested module names to group informally or categorize a module.
3003 There should be a very good reason for a module not to have a nested name.
3004 Module names should begin with a capital letter.
3006 Having 57 modules all called Sort will not make life easy for anyone
3007 (though having 23 called Sort::Quick is only marginally better :-).
3008 Imagine someone trying to install your module alongside many others.
3009 If in any doubt ask for suggestions in comp.lang.perl.misc.
3011 If you are developing a suite of related modules/classes it's good
3012 practice to use nested classes with a common prefix as this will
3013 avoid namespace clashes. For example: Xyz::Control, Xyz::View,
3014 Xyz::Model etc. Use the modules in this list as a naming guide.
3016 If adding a new module to a set, follow the original author's
3017 standards for naming modules and the interface to methods in
3020 If developing modules for private internal or project specific use,
3021 that will never be released to the public, then you should ensure
3022 that their names will not clash with any future public module. You
3023 can do this either by using the reserved Local::* category or by
3024 using a category name that includes an underscore like Foo_Corp::*.
3026 To be portable each component of a module name should be limited to
3027 11 characters. If it might be used on MS-DOS then try to ensure each is
3028 unique in the first 8 characters. Nested modules make this easier.
3032 Have you got it right?
3034 How do you know that you've made the right decisions? Have you
3035 picked an interface design that will cause problems later? Have
3036 you picked the most appropriate name? Do you have any questions?
3038 The best way to know for sure, and pick up many helpful suggestions,
3039 is to ask someone who knows. Comp.lang.perl.misc is read by just about
3040 all the people who develop modules and it's the best place to ask.
3042 All you need to do is post a short summary of the module, its
3043 purpose and interfaces. A few lines on each of the main methods is
3044 probably enough. (If you post the whole module it might be ignored
3045 by busy people - generally the very people you want to read it!)
3047 Don't worry about posting if you can't say when the module will be
3048 ready - just say so in the message. It might be worth inviting
3049 others to help you, they may be able to complete it for you!
3053 README and other Additional Files.
3055 It's well known that software developers usually fully document the
3056 software they write. If, however, the world is in urgent need of
3057 your software and there is not enough time to write the full
3058 documentation please at least provide a README file containing:
3064 A description of the module/package/extension etc.
3068 A copyright notice - see below.
3072 Prerequisites - what else you may need to have.
3076 How to build it - possible changes to Makefile.PL etc.
3084 Recent changes in this release, especially incompatibilities
3088 Changes / enhancements you plan to make in the future.
3092 If the README file seems to be getting too large you may wish to
3093 split out some of the sections into separate files: INSTALL,
3100 Adding a Copyright Notice.
3102 How you choose to license your work is a personal decision.
3103 The general mechanism is to assert your Copyright and then make
3104 a declaration of how others may copy/use/modify your work.
3106 Perl, for example, is supplied with two types of licence: The GNU GPL
3107 and The Artistic Licence (see the files README, Copying, and Artistic,
3108 or L<perlgpl> and L<perlartistic>). Larry has good reasons for NOT
3109 just using the GNU GPL.
3111 My personal recommendation, out of respect for Larry, Perl, and the
3112 Perl community at large is to state something simply like:
3114 Copyright (c) 1995 Your Name. All rights reserved.
3115 This program is free software; you can redistribute it and/or
3116 modify it under the same terms as Perl itself.
3118 This statement should at least appear in the README file. You may
3119 also wish to include it in a Copying file and your source files.
3120 Remember to include the other words in addition to the Copyright.
3124 Give the module a version/issue/release number.
3126 To be fully compatible with the Exporter and MakeMaker modules you
3127 should store your module's version number in a non-my package
3128 variable called $VERSION. This should be a floating point
3129 number with at least two digits after the decimal (i.e., hundredths,
3130 e.g, C<$VERSION = "0.01">). Don't use a "1.3.2" style version.
3131 See L<Exporter> for details.
3133 It may be handy to add a function or method to retrieve the number.
3134 Use the number in announcements and archive file names when
3135 releasing the module (ModuleName-1.02.tar.Z).
3136 See perldoc ExtUtils::MakeMaker.pm for details.
3140 How to release and distribute a module.
3142 It's good idea to post an announcement of the availability of your
3143 module (or the module itself if small) to the comp.lang.perl.announce
3144 Usenet newsgroup. This will at least ensure very wide once-off
3147 If possible, register the module with CPAN. You should
3148 include details of its location in your announcement.
3150 Some notes about ftp archives: Please use a long descriptive file
3151 name that includes the version number. Most incoming directories
3152 will not be readable/listable, i.e., you won't be able to see your
3153 file after uploading it. Remember to send your email notification
3154 message as soon as possible after uploading else your file may get
3155 deleted automatically. Allow time for the file to be processed
3156 and/or check the file has been processed before announcing its
3159 FTP Archives for Perl Modules:
3161 Follow the instructions and links on:
3163 http://www.cpan.org/modules/00modlist.long.html
3164 http://www.cpan.org/modules/04pause.html
3166 or upload to one of these sites:
3168 https://pause.kbx.de/pause/
3169 http://pause.perl.org/pause/
3171 and notify <modules@perl.org>.
3173 By using the WWW interface you can ask the Upload Server to mirror
3174 your modules from your ftp or WWW site into your own directory on
3177 Please remember to send me an updated entry for the Module list!
3181 Take care when changing a released module.
3183 Always strive to remain compatible with previous released versions.
3184 Otherwise try to add a mechanism to revert to the
3185 old behavior if people rely on it. Document incompatible changes.
3191 =head2 Guidelines for Converting Perl 4 Library Scripts into Modules
3197 There is no requirement to convert anything.
3199 If it ain't broke, don't fix it! Perl 4 library scripts should
3200 continue to work with no problems. You may need to make some minor
3201 changes (like escaping non-array @'s in double quoted strings) but
3202 there is no need to convert a .pl file into a Module for just that.
3206 Consider the implications.
3208 All Perl applications that make use of the script will need to
3209 be changed (slightly) if the script is converted into a module. Is
3210 it worth it unless you plan to make other changes at the same time?
3214 Make the most of the opportunity.
3216 If you are going to convert the script to a module you can use the
3217 opportunity to redesign the interface. The guidelines for module
3218 creation above include many of the issues you should consider.
3222 The pl2pm utility will get you started.
3224 This utility will read *.pl files (given as parameters) and write
3225 corresponding *.pm files. The pl2pm utilities does the following:
3231 Adds the standard Module prologue lines
3235 Converts package specifiers from ' to ::
3239 Converts die(...) to croak(...)
3243 Several other minor changes
3247 Being a mechanical process pl2pm is not bullet proof. The converted
3248 code will need careful checking, especially any package statements.
3249 Don't delete the original .pl file till the new .pm one works!
3253 =head2 Guidelines for Reusing Application Code
3259 Complete applications rarely belong in the Perl Module Library.
3263 Many applications contain some Perl code that could be reused.
3265 Help save the world! Share your code in a form that makes it easy
3270 Break-out the reusable code into one or more separate module files.
3274 Take the opportunity to reconsider and redesign the interfaces.
3278 In some cases the 'application' can then be reduced to a small
3280 fragment of code built on top of the reusable modules. In these cases
3281 the application could invoked as:
3283 % perl -e 'use Module::Name; method(@ARGV)' ...
3285 % perl -mModule::Name ... (in perl5.002 or higher)
3291 Perl does not enforce private and public parts of its modules as you may
3292 have been used to in other languages like C++, Ada, or Modula-17. Perl
3293 doesn't have an infatuation with enforced privacy. It would prefer
3294 that you stayed out of its living room because you weren't invited, not
3295 because it has a shotgun.
3297 The module and its user have a contract, part of which is common law,
3298 and part of which is "written". Part of the common law contract is
3299 that a module doesn't pollute any namespace it wasn't asked to. The
3300 written contract for the module (A.K.A. documentation) may make other
3301 provisions. But then you know when you C<use RedefineTheWorld> that
3302 you're redefining the world and willing to take the consequences.