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