This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Small doc tweaks.
[perl5.git] / pod / perlmodlib.pod
index 62d249a..8ad8072 100644 (file)
@@ -1,3 +1,6 @@
+=for maintainers
+Generated by perlmodlib.PL -- DO NOT EDIT!
+
 =head1 NAME
 
 perlmodlib - constructing new Perl modules and finding existing ones
@@ -50,10 +53,6 @@ The following pragmas are defined (and have their own documentation).
 
 Get/set subroutine or variable attributes
 
-=item attrs
-
-Set/get attributes of a subroutine (deprecated)
-
 =item autouse
 
 Postpone load of modules until a function is used
@@ -72,7 +71,7 @@ Force byte semantics rather than character semantics
 
 =item charnames
 
-Define character names for C<\N{named}> string literal escape.
+Define character names for C<\N{named}> string literal escapes.
 
 =item constant
 
@@ -82,6 +81,10 @@ Declare constants
 
 Perl compiler pragma to force verbose warning diagnostics
 
+=item encoding
+
+Pragma to control the conversion of legacy data into Unicode
+
 =item fields
 
 Compile-time class fields
@@ -92,7 +95,7 @@ Control the filetest permission operators
 
 =item integer
 
-Compute arithmetic in integer instead of double
+Use integer arithmetic instead of floating point
 
 =item less
 
@@ -106,26 +109,18 @@ Use and avoid POSIX locales for built-in operations
 
 Set default disciplines for input and output
 
-=item ops
-
-Restrict unsafe operations when compiling
-
 =item overload
 
 Package for overloading perl operations
 
-=item perlio
-
-Configure C level IO
-
-=item re
-
-Alter regular expression behaviour
-
 =item sigtrap
 
 Enable simple signal handling
 
+=item sort
+
+Control sort() behaviour
+
 =item strict
 
 Restrict unsafe constructs
@@ -136,12 +131,16 @@ Predeclare sub names
 
 =item utf8
 
-Enable/disable UTF-8 in source code
+Enable/disable UTF-8 (or UTF-EBCDIC) in source code
 
 =item vars
 
 Predeclare global variable names (obsolete)
 
+=item vmsish
+
+Control VMS-specific language features
+
 =item warnings
 
 Control optional warnings
@@ -164,6 +163,10 @@ Exporter module.  See their own documentation for details.
 
 Provide framework for multiple DBMs
 
+=item Attribute::Handlers
+
+Simpler definition of attribute handlers
+
 =item AutoLoader
 
 Load subroutines only on demand
@@ -172,78 +175,10 @@ Load subroutines only on demand
 
 Split a package for autoloading
 
-=item B
-
-The Perl Compiler
-
-=item B::Asmdata
-
-Autogenerated data about Perl ops, used to generate bytecode
-
-=item B::Assembler
-
-Assemble Perl bytecode
-
-=item B::Bblock
-
-Walk basic blocks
-
-=item B::Bytecode
-
-Perl compiler's bytecode backend
-
-=item B::C
-
-Perl compiler's C backend
-
-=item B::CC
-
-Perl compiler's optimized C translation backend
-
-=item B::Debug
-
-Walk Perl syntax tree, printing debug info about ops
-
-=item B::Deparse
-
-Perl compiler backend to produce perl code
-
-=item B::Disassembler
-
-Disassemble Perl bytecode
-
-=item B::Lint
-
-Perl lint
-
-=item B::Showlex
-
-Show lexical variables used in functions or files
-
-=item B::Stackobj
-
-Helper module for CC backend
-
-=item B::Stash
-
-Show what stashes are loaded
-
-=item B::Terse
-
-Walk Perl syntax tree, printing terse info about ops
-
-=item B::Xref
-
-Generates cross reference reports for Perl programs
-
 =item Benchmark
 
 Benchmark running times of Perl code
 
-=item ByteLoader
-
-Load byte compiled perl code
-
 =item CGI
 
 Simple Common Gateway Interface Class
@@ -276,6 +211,10 @@ Simple Interface to Server Push
 
 Backward compatibility module for defunct CGI::Switch
 
+=item CGI::Util
+
+Internal utilities used by CGI module
+
 =item CPAN
 
 Query, download and build perl modules from CPAN sites
@@ -292,6 +231,14 @@ Wrapper around CPAN.pm without using any XS module
 
 Warn of errors (from perspective of caller)
 
+=item Carp::Heavy
+
+No user serviceable parts inside
+
+=item Class::ISA
+
+Report the search path for a class's ISA tree
+
 =item Class::Struct
 
 Declare struct-like datatypes as Perl classes
@@ -304,14 +251,14 @@ Get pathname of current working directory
 
 Programmatic interface to the Perl debugging API (draft, subject to
 
-=item DB_File
-
-Perl5 access to Berkeley DB version 1.x
-
 =item Devel::SelfStubber
 
 Generate stubs for a SelfLoading module
 
+=item Digest
+
+Modules that calculate message digests
+
 =item DirHandle
 
 Supply object methods for directory handles
@@ -320,10 +267,6 @@ Supply object methods for directory handles
 
 Provides screen dump of Perl data.
 
-=item Encode
-
-Character encodings
-
 =item English
 
 Use nice English (or awk) names for ugly punctuation variables
@@ -344,6 +287,10 @@ Exporter guts
 
 Utilities to replace common UNIX commands in Makefiles etc.
 
+=item ExtUtils::Constant
+
+Generate XS code to import C header constants
+
 =item ExtUtils::Embed
 
 Utilities for embedding Perl in C/C++ applications
@@ -364,6 +311,10 @@ Determine libraries to use and how to use them
 
 Methods to override UN*X behaviour in ExtUtils::MakeMaker
 
+=item ExtUtils::MM_NW5
+
+Methods to override UN*X behaviour in ExtUtils::MakeMaker
+
 =item ExtUtils::MM_OS2
 
 Methods to override UN*X behaviour in ExtUtils::MakeMaker
@@ -408,10 +359,6 @@ Add blib/* directories to @INC
 
 Replace functions with equivalents which succeed or die
 
-=item Fcntl
-
-Load the C Fcntl.h defines
-
 =item File::Basename
 
 Split a pathname into pieces
@@ -444,6 +391,10 @@ Create or remove directory trees
 
 Portably perform operations on file names
 
+=item File::Spec::Cygwin
+
+Methods for Cygwin file specs
+
 =item File::Spec::Epoc
 
 Methods for Epoc file specs
@@ -454,7 +405,7 @@ Portably perform operations on file names
 
 =item File::Spec::Mac
 
-File::Spec for MacOS
+File::Spec for Mac OS (Classic)
 
 =item File::Spec::OS2
 
@@ -462,7 +413,7 @@ Methods for OS/2 file specs
 
 =item File::Spec::Unix
 
-Methods used by File::Spec
+File::Spec for Unix, base for other File::Spec modules
 
 =item File::Spec::VMS
 
@@ -508,9 +459,13 @@ Process single-character switches with switch clustering
 
 Compare 8-bit scalar data according to the current locale
 
-=item IO
+=item I18N::LangTags
 
-Load various IO modules
+Functions for dealing with RFC3066-style language tags
+
+=item I18N::LangTags::List
+
+Tags and names for human languages
 
 =item IPC::Open2
 
@@ -520,14 +475,42 @@ Open a process for both reading and writing
 
 Open a process for reading, writing, and error handling
 
+=item Locale::Constants
+
+Constants for Locale codes
+
+=item Locale::Country
+
+ISO codes for country identification (ISO 3166)
+
+=item Locale::Currency
+
+ISO three letter codes for currency identification (ISO 4217)
+
+=item Locale::Language
+
+ISO two letter codes for language identification (ISO 639)
+
+=item Locale::Maketext
+
+Framework for localization
+
+=item Locale::Maketext::TPJ13
+
+Article about software localization
+
 =item Math::BigFloat
 
-Arbitrary length float math package
+Arbitrary size floating point math package
 
 =item Math::BigInt
 
 Arbitrary size integer math package
 
+=item Math::BigInt::Calc
+
+Pure Perl module to support Math::BigInt
+
 =item Math::Complex
 
 Complex numbers and associated mathematical functions
@@ -536,18 +519,90 @@ Complex numbers and associated mathematical functions
 
 Trigonometric functions
 
-=item NDBM_File
+=item Memoize
+
+Make your functions faster by trading space for time
+
+=item Memoize::AnyDBM_File
+
+Glue to provide EXISTS for AnyDBM_File for Storable use
+
+=item Memoize::Expire
+
+Plug-in module for automatic expiration of memoized values
+
+=item Memoize::ExpireFile
+
+Test for Memoize expiration semantics
+
+=item Memoize::ExpireTest
 
-Tied access to ndbm files
+Test for Memoize expiration semantics
+
+=item Memoize::NDBM_File
+
+Glue to provide EXISTS for NDBM_File for Storable use
+
+=item Memoize::SDBM_File
+
+Glue to provide EXISTS for SDBM_File for Storable use
+
+=item Memoize::Storable
+
+Store Memoized data in Storable database
+
+=item NEXT
+
+Provide a pseudo-class NEXT that allows method redispatch
+
+=item Net::Cmd
+
+Network Command class (as used by FTP, SMTP etc)
+
+=item Net::Config
+
+Local configuration data for libnet
+
+=item Net::Domain
+
+Attempt to evaluate the current host's internet name and domain
+
+=item Net::FTP
+
+FTP Client class
+
+=item Net::NNTP
+
+NNTP Client class
+
+=item Net::Netrc
+
+OO interface to users netrc file
+
+=item Net::POP3
+
+Post Office Protocol 3 Client class (RFC1081)
 
 =item Net::Ping
 
 Check a remote host for reachability
 
+=item Net::SMTP
+
+Simple Mail Transfer Protocol Client
+
+=item Net::Time
+
+Time and daytime network client interface
+
 =item Net::hostent
 
 By-name interface to Perl's built-in gethost*() functions
 
+=item Net::libnetFAQ
+
+Libnet Frequently Asked Questions
+
 =item Net::netent
 
 By-name interface to Perl's built-in getnet*() functions
@@ -560,17 +615,9 @@ By-name interface to Perl's built-in getproto*() functions
 
 By-name interface to Perl's built-in getserv*() functions
 
-=item O
-
-Generic interface to Perl Compiler backends
-
-=item ODBM_File
-
-Tied access to odbm files
-
-=item Opcode
+=item PerlIO
 
-Disable named opcodes when compiling perl code
+On demand loader for PerlIO layers and root of PerlIO::* name space
 
 =item Pod::Checker
 
@@ -580,6 +627,10 @@ Check pod documents for syntax errors
 
 Find POD documents in directory trees
 
+=item Pod::Functions
+
+Group Perl's functions a la perlfunc.pod
+
 =item Pod::Html
 
 Module to convert pod files to HTML
@@ -596,6 +647,10 @@ Convert Pod data to formatted Latex
 
 Convert POD data to formatted *roff input
 
+=item Pod::ParseLink
+
+Parse an LE<lt>E<gt> formatting code in POD text
+
 =item Pod::ParseUtils
 
 Helpers for POD parsing and conversion
@@ -620,6 +675,10 @@ Convert POD data to formatted ASCII text
 
 Convert POD data to formatted color ASCII text
 
+=item Pod::Text::Overstrike
+
+Convert POD data to formatted overstrike text
+
 =item Pod::Text::Termcap
 
 Convert POD data to ASCII text with format escapes
@@ -628,13 +687,9 @@ Convert POD data to ASCII text with format escapes
 
 Print a usage message from embedded pod documentation
 
-=item SDBM_File
-
-Tied access to sdbm files
-
-=item Safe
+=item Pod::t::basic
 
-Compile and execute code in restricted compartments
+Test of various basic POD features in translators.
 
 =item Search::Dict
 
@@ -652,13 +707,9 @@ Load functions only on demand
 
 Run shell commands transparently within perl
 
-=item Socket
+=item Switch
 
-Load the C socket.h defines and structure manipulators 
-
-=item Storable
-
-Persistency for perl data structures
+A switch statement for Perl
 
 =item Symbol
 
@@ -684,14 +735,34 @@ Perl interface to various C<readline> packages. If
 
 Provides a simple framework for writing test scripts
 
+=item Test::Builder
+
+Backend for building test libraries
+
 =item Test::Harness
 
 Run perl standard test scripts with statistics
 
+=item Test::More
+
+Yet another framework for writing test scripts
+
+=item Test::Simple
+
+Basic utilities for writing tests.
+
+=item Test::Tutorial
+
+A tutorial about writing really basic tests
+
 =item Text::Abbrev
 
 Create an abbreviation table from a list
 
+=item Text::Balanced
+
+Extract delimited text sequences from strings.
+
 =item Text::ParseWords
 
 Parse text into an array of tokens or array of arrays
@@ -700,10 +771,18 @@ Parse text into an array of tokens or array of arrays
 
 Implementation of the Soundex Algorithm as Described by Knuth
 
+=item Text::Tabs
+
+Expand and unexpand tabs per the unix expand(1) and unexpand(1)
+
 =item Text::Wrap
 
 Line wrapping to form simple paragraphs
 
+=item Thread
+
+Manipulate threads in Perl
+
 =item Tie::Array
 
 Base class for tied arrays
@@ -748,6 +827,14 @@ Internal object used by Time::gmtime and Time::localtime
 
 Base class for ALL classes (blessed references)
 
+=item Unicode::Collate
+
+Use UCA (Unicode Collation Algorithm)
+
+=item Unicode::UCD
+
+Unicode character database
+
 =item User::grent
 
 By-name interface to Perl's built-in getgr*() functions
@@ -756,6 +843,10 @@ By-name interface to Perl's built-in getgr*() functions
 
 By-name interface to Perl's built-in getpw*() functions
 
+=item Win32
+
+Interfaces to some Win32 API Functions
+
 =back
 
 To find out I<all> modules installed on your system, including
@@ -776,7 +867,7 @@ system B<man> command, you might try the B<perldoc> program.
 
 Extension modules are written in C (or a mix of Perl and C).  They
 are usually dynamically loaded into Perl if and when you need them,
-but may also be be linked in statically.  Supported extension modules
+but may also be linked in statically.  Supported extension modules
 include Socket, Fcntl, and POSIX.
 
 Many popular C extension modules do not come bundled (at least, not
@@ -792,14 +883,13 @@ CPAN stands for Comprehensive Perl Archive Network; it's a globally
 replicated trove of Perl materials, including documentation, style
 guides, tricks and traps, alternate ports to non-Unix systems and
 occasional binary distributions for these.   Search engines for
-CPAN can be found at http://cpan.perl.com/ and at
-http://theory.uwinnipeg.ca/mod_perl/cpan-search.pl .
+CPAN can be found at http://www.cpan.org/.
 
 Most importantly, CPAN includes around a thousand unbundled modules,
 some of which require a C compiler to build.  Major categories of
 modules are:
 
-=over 4
+=over
 
 =item *
 
@@ -890,290 +980,849 @@ Miscellaneous Modules
 Registered CPAN sites as of this writing include the following.
 You should try to choose one close to you:
 
+=head2 Africa
+
 =over 4
 
-=item Africa
-
-    South Africa   ftp://ftp.is.co.za/programming/perl/CPAN/
-                   ftp://ftp.saix.net/pub/CPAN/
-                   ftp://ftp.sun.ac.za/CPAN/
-                   ftp://ftpza.co.za/pub/mirrors/cpan/
-
-
-=item Asia
-
-    China          ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
-    Hong Kong      ftp://ftp.pacific.net.hk/pub/mirror/CPAN/
-    Indonesia      ftp://malone.piksi.itb.ac.id/pub/CPAN/
-    Israel         ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
-    Japan          ftp://ftp.dti.ad.jp/pub/lang/CPAN/
-                   ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
-                   ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
-                   ftp://ftp.meisei-u.ac.jp/pub/CPAN/
-                   ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
-                   ftp://mirror.nucba.ac.jp/mirror/Perl/
-    Saudi-Arabia   ftp://ftp.isu.net.sa/pub/CPAN/
-    Singapore      ftp://ftp.nus.edu.sg/pub/unix/perl/CPAN/
-    South Korea    ftp://ftp.bora.net/pub/CPAN/
-                   ftp://ftp.kornet.net/pub/CPAN/
-                   ftp://ftp.nuri.net/pub/CPAN/
-    Taiwan         ftp://coda.nctu.edu.tw/computer-languages/perl/CPAN/
-                   ftp://ftp.ee.ncku.edu.tw/pub3/perl/CPAN/
-                   ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
-    Thailand       ftp://ftp.nectec.or.th/pub/mirrors/CPAN/
-
-
-=item Australasia
-
-    Australia      ftp://cpan.topend.com.au/pub/CPAN/
-                   ftp://ftp.labyrinth.net.au/pub/perl-CPAN/
-                   ftp://ftp.sage-au.org.au/pub/compilers/perl/CPAN/
-                   ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
-    New Zealand    ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
-                   ftp://sunsite.net.nz/pub/languages/perl/CPAN/
-
-
-=item Central America
-
-    Costa Rica     ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
-
-
-=item Europe
-
-    Austria        ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
-    Belgium        ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
-    Bulgaria       ftp://ftp.ntrl.net/pub/mirrors/CPAN/
-    Croatia        ftp://ftp.linux.hr/pub/CPAN/
-    Czech Republic ftp://ftp.fi.muni.cz/pub/perl/
-                   ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/
-    Denmark        ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
-    Estonia        ftp://ftp.ut.ee/pub/languages/perl/CPAN/
-    Finland        ftp://ftp.funet.fi/pub/languages/perl/CPAN/
-    France         ftp://ftp.grolier.fr/pub/perl/CPAN/
-                   ftp://ftp.lip6.fr/pub/perl/CPAN/
-                   ftp://ftp.oleane.net/pub/mirrors/CPAN/
-                   ftp://ftp.pasteur.fr/pub/computing/CPAN/
-                   ftp://ftp.uvsq.fr/pub/perl/CPAN/
-    German         ftp://ftp.gigabell.net/pub/CPAN/
-    Germany        ftp://ftp.archive.de.uu.net/pub/CPAN/
-                   ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/
-                   ftp://ftp.gmd.de/packages/CPAN/
-                   ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
-
-ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/CPAN/
-                   ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
-                   ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
-                   ftp://ftp.uni-erlangen.de/pub/source/CPAN/
-                   ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
-    Germany        ftp://ftp.archive.de.uu.net/pub/CPAN/
-                   ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/
-                   ftp://ftp.gmd.de/packages/CPAN/
-                   ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
-
-ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/CPAN/
-                   ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
-                   ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
-                   ftp://ftp.uni-erlangen.de/pub/source/CPAN/
-                   ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
-    Greece         ftp://ftp.ntua.gr/pub/lang/perl/
-    Hungary        ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
-    Iceland        ftp://ftp.gm.is/pub/CPAN/
-    Ireland        ftp://cpan.indigo.ie/pub/CPAN/
-                   ftp://sunsite.compapp.dcu.ie/pub/perl/
-    Italy          ftp://cis.uniRoma2.it/CPAN/
-                   ftp://ftp.flashnet.it/pub/CPAN/
-                   ftp://ftp.unina.it/pub/Other/CPAN/
-                   ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
-    Netherlands    ftp://ftp.cs.uu.nl/mirror/CPAN/
-                   ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
-    Norway         ftp://ftp.uit.no/pub/languages/perl/cpan/
-                   ftp://sunsite.uio.no/pub/languages/perl/CPAN/
-    Poland         ftp://ftp.man.torun.pl/pub/CPAN/
-                   ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
-                   ftp://sunsite.icm.edu.pl/pub/CPAN/
-    Portugal       ftp://ftp.ci.uminho.pt/pub/mirrors/cpan/
-                   ftp://ftp.ist.utl.pt/pub/CPAN/
-                   ftp://ftp.ua.pt/pub/CPAN/
-    Romania        ftp://ftp.dnttm.ro/pub/CPAN/
-    Russia         ftp://ftp.chg.ru/pub/lang/perl/CPAN/
-                   ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
-    Slovakia       ftp://ftp.entry.sk/pub/languages/perl/CPAN/
-    Slovenia       ftp://ftp.arnes.si/software/perl/CPAN/
-    Spain          ftp://ftp.etse.urv.es/pub/perl/
-                   ftp://ftp.rediris.es/mirror/CPAN/
-    Sweden         ftp://ftp.sunet.se/pub/lang/perl/CPAN/
-    Switzerland    ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
-    Turkey         ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
-    United Kingdom ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
-                   ftp://ftp.flirble.org/pub/languages/perl/CPAN/
-
-ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
-                   ftp://ftp.plig.org/pub/CPAN/
-                   ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
-
-
-=item North America
-
-    Alberta        ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
-    California     ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
-                   ftp://cpan.valueclick.com/CPAN/
-                   ftp://ftp.cdrom.com/pub/perl/CPAN/
-                   http://download.sourceforge.net/mirrors/CPAN/
-    Colorado       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
-    Florida        ftp://ftp.cise.ufl.edu/pub/perl/CPAN/
-    Georgia        ftp://ftp.twoguys.org/CPAN/
-    Illinois       ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/
-    Indiana        ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN/
-                   ftp://ftp.uwsg.indiana.edu/pub/perl/CPAN/
-    Kentucky       ftp://ftp.uky.edu/CPAN/
-    Manitoba       ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
-    Massachusetts
-ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
-                   ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/
-    Mexico         ftp://ftp.msg.com.mx/pub/CPAN/
-    New York       ftp://ftp.deao.net/pub/CPAN/
-                   ftp://ftp.rge.com/pub/languages/perl/
-    North Carolina ftp://ftp.duke.edu/pub/perl/
-    Nova Scotia    ftp://cpan.chebucto.ns.ca/pub/CPAN/
-    Oklahoma       ftp://ftp.ou.edu/mirrors/CPAN/
-    Ontario        ftp://ftp.crc.ca/pub/packages/lang/perl/CPAN/
-    Oregon         ftp://ftp.orst.edu/pub/packages/CPAN/
-    Pennsylvania   ftp://ftp.epix.net/pub/languages/perl/
-    Tennessee      ftp://ftp.sunsite.utk.edu/pub/CPAN/
-    Texas          ftp://ftp.sedl.org/pub/mirrors/CPAN/
-                   ftp://jhcloos.com/pub/mirror/CPAN/
-    Utah           ftp://mirror.xmission.com/CPAN/
-    Virginia       ftp://ftp.perl.org/pub/perl/CPAN/
-                   ftp://ruff.cs.jmu.edu/pub/CPAN/
-    Washington     ftp://ftp-mirror.internap.com/pub/CPAN/
-                   ftp://ftp.llarian.net/pub/CPAN/
-                   ftp://ftp.spu.edu/pub/CPAN/
-
-
-=item South America
-
-    Brazil         ftp://cpan.if.usp.br/pub/mirror/CPAN/
-                   ftp://ftp.matrix.com.br/pub/perl/
-    Chile          ftp://sunsite.dcc.uchile.cl/pub/Lang/PERL/
+=item *
+
+South Africa
+
+    ftp://ftp.is.co.za/programming/perl/CPAN/
+    ftp://ftp.mweb.co.za/pub/mirrors/cpan/
+    ftp://ftp.saix.net/pub/CPAN/
+    ftp://ftp.sun.ac.za/CPAN/
 
 =back
 
-For an up-to-date listing of CPAN sites,
-see http://www.perl.com/perl/CPAN/SITES or ftp://www.perl.com/CPAN/SITES .
+=head2 Asia
 
-=head1 Modules: Creation, Use, and Abuse
+=over 4
 
-(The following section is borrowed directly from Tim Bunce's modules
-file, available at your nearest CPAN site.)
+=item *
 
-Perl implements a class using a package, but the presence of a
-package doesn't imply the presence of a class.  A package is just a
-namespace.  A class is a package that provides subroutines that can be
-used as methods.  A method is just a subroutine that expects, as its
-first argument, either the name of a package (for "static" methods),
-or a reference to something (for "virtual" methods).
+China
 
-A module is a file that (by convention) provides a class of the same
-name (sans the .pm), plus an import method in that class that can be
-called to fetch exported symbols.  This module may implement some of
-its methods by loading dynamic C or C++ objects, but that should be
-totally transparent to the user of the module.  Likewise, the module
-might set up an AUTOLOAD function to slurp in subroutine definitions on
-demand, but this is also transparent.  Only the F<.pm> file is required to
-exist.  See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
-the AUTOLOAD mechanism.
+    ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
+    http://www2.linuxforum.net/mirror/CPAN/
+    http://CPAN.pacific.net.hk/
+    ftp://ftp.pacific.net.hk/pub/mirror/CPAN/
+    http://cpan.shellhung.org/
+    ftp://ftp.shellhung.org/pub/CPAN
 
-=head2 Guidelines for Module Creation
+=item *
 
-=over 4
+India
 
-=item Do similar modules already exist in some form?
+    http://cpan.in.freeos.com
+    ftp://cpan.in.freeos.com/pub/CPAN/
 
-If so, please try to reuse the existing modules either in whole or
-by inheriting useful features into a new class.  If this is not
-practical try to get together with the module authors to work on
-extending or enhancing the functionality of the existing modules.
-A perfect example is the plethora of packages in perl4 for dealing
-with command line options.
+=item *
 
-If you are writing a module to expand an already existing set of
-modules, please coordinate with the author of the package.  It
-helps if you follow the same naming scheme and module interaction
-scheme as the original author.
+Indonesia
 
-=item Try to design the new module to be easy to extend and reuse.
+    http://cpan.itb.web.id/
+    ftp://mirrors.piksi.itb.ac.id/CPAN/
+    http://CPAN.mweb.co.id/
+    ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
 
-Try to C<use warnings;> (or C<use warnings qw(...);>).
-Remember that you can add C<no warnings qw(...);> to individual blocks
-of code that need less warnings.
+=item *
 
-Use blessed references.  Use the two argument form of bless to bless
-into the class name given as the first parameter of the constructor,
-e.g.,:
+Israel
 
- sub new {
-     my $class = shift;
-     return bless {}, $class;
- }
+    http://www.iglu.org.il:/pub/CPAN/
+    ftp://ftp.iglu.org.il/pub/CPAN/
+    http://cpan.lerner.co.il/
+    http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
+    ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
 
-or even this if you'd like it to be used as either a static
-or a virtual method.
+=item *
 
- sub new {
-     my $self  = shift;
-     my $class = ref($self) || $self;
-     return bless {}, $class;
- }
+Japan
 
-Pass arrays as references so more parameters can be added later
-(it's also faster).  Convert functions into methods where
-appropriate.  Split large methods into smaller more flexible ones.
-Inherit methods from other modules if appropriate.
+    ftp://ftp.u-aizu.ac.jp/pub/CPAN
+    ftp://ftp.kddlabs.co.jp/CPAN/
+    http://mirror.nucba.ac.jp/mirror/Perl/
+    ftp://mirror.nucba.ac.jp/mirror/Perl/
+    ftp://ftp.meisei-u.ac.jp/pub/CPAN/
+    ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
+    ftp://ftp.dti.ad.jp/pub/lang/CPAN/
+    ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
 
-Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
-Generally you can delete the C<eq 'FOO'> part with no harm at all.
-Let the objects look after themselves! Generally, avoid hard-wired
-class names as far as possible.
+=item *
 
-Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
-C<< $r->func() >> would work (see L<perlbot> for more details).
+Korea
 
-Use autosplit so little used or newly added functions won't be a
-burden to programs that don't use them. Add test functions to
-the module after __END__ either using AutoSplit or by saying:
+    http://mirror.Mazic.org/pub/CPAN
+    ftp://mirror.Mazic.org/pub/CPAN
 
- eval join('',<main::DATA>) || die $@ unless caller();
+=item *
 
-Does your module pass the 'empty subclass' test? If you say
-C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
-to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
-does your application still work if you change:  C<$obj = new YOURCLASS;>
-into: C<$obj = new SUBCLASS;> ?
+Philippines
 
-Avoid keeping any state information in your packages. It makes it
-difficult for multiple other packages to use yours. Keep state
-information in objects.
+    http://www.adzu.edu.ph/CPAN
 
-Always use B<-w>.
+=item *
 
-Try to C<use strict;> (or C<use strict qw(...);>).
-Remember that you can add C<no strict qw(...);> to individual blocks
-of code that need less strictness.
+Russian Federation
 
-Always use B<-w>.
+    http://cpan.tomsk.ru
+    ftp://cpan.tomsk.ru/pub/CPAN
 
-Follow the guidelines in the perlstyle(1) manual.
+=item *
 
-Always use B<-w>.
+Saudi Arabia
 
-=item Some simple style guidelines
+    ftp://ftp.isu.net.sa/pub/CPAN/
 
-The perlstyle manual supplied with Perl has many helpful points.
+=item *
 
-Coding style is a matter of personal taste. Many people evolve their
-style over several years as they learn what helps them write and
-maintain good code.  Here's one set of assorted suggestions that
-seem to be widely used by experienced developers:
+Singapore
+
+    http://cpan.hjc.edu.sg
+
+=item *
+
+South Korea
+
+    http://CPAN.bora.net/
+    ftp://ftp.bora.net/pub/CPAN/
+    http://ftp.kornet.net/pub/CPAN/
+    ftp://ftp.kornet.net/pub/CPAN/
+    ftp://ftp.nuri.net/pub/CPAN/
+
+=item *
+
+Taiwan
+
+    ftp://coda.nctu.edu.tw/UNIX/perl/CPAN
+    ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
+    ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
+    http://ftp.tku.edu.tw/pub/CPAN/
+    ftp://ftp.tku.edu.tw/pub/CPAN/
+
+=item *
+
+Thailand
+
+    http://download.nectec.or.th/CPAN/
+    ftp://ftp.nectec.or.th/pub/languages/CPAN/
+    ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
+
+=back
+
+=head2 Central America
+
+=over 4
+
+=item *
+
+Costa Rica
+
+    ftp://ftp.linux.co.cr/mirrors/CPAN/
+    http://ftp.ucr.ac.cr/Unix/CPAN/
+    ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
+
+=back
+
+=head2 Europe
+
+=over 4
+
+=item *
+
+Austria
+
+    ftp://ftp.tuwien.ac.at/pub/CPAN/
+
+=item *
+
+Belgium
+
+    http://ftp.easynet.be/pub/CPAN/
+    ftp://ftp.easynet.be/pub/CPAN/
+    http://cpan.skynet.be
+    ftp://ftp.skynet.be/pub/CPAN
+    ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
+
+=item *
+
+Bulgaria
+
+    ftp://ftp.ntrl.net/pub/mirrors/CPAN/
+
+=item *
+
+Croatia
+
+    ftp://ftp.linux.hr/pub/CPAN/
+
+=item *
+
+Czech Republic
+
+    http://ftp.fi.muni.cz/pub/CPAN/
+    ftp://ftp.fi.muni.cz/pub/CPAN/
+    ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
+
+=item *
+
+Denmark
+
+    http://mirrors.sunsite.dk/cpan/
+    ftp://sunsite.dk/mirrors/cpan/
+    http://www.cpan.dk/CPAN/
+    ftp://www.cpan.dk/ftp.cpan.org/CPAN/
+
+=item *
+
+England
+
+    http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
+    ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
+    http://cpan.crazygreek.co.uk
+    ftp://ftp.demon.co.uk/pub/CPAN/
+    ftp://ftp.flirble.org/pub/languages/perl/CPAN/
+    ftp://ftp.plig.org/pub/CPAN/
+    ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
+    http://mirror.uklinux.net/CPAN/
+    ftp://mirror.uklinux.net/pub/CPAN/
+    ftp://usit.shef.ac.uk/pub/packages/CPAN/
+
+=item *
+
+Estonia
+
+    ftp://ftp.ut.ee/pub/languages/perl/CPAN/
+
+=item *
+
+Finland
+
+    ftp://ftp.funet.fi/pub/languages/perl/CPAN/
+    http://cpan.kpnqwest.fi/
+
+=item *
+
+France
+
+    ftp://cpan.ftp.worldonline.fr/pub/CPAN/
+    http://cpan.mirrors.easynet.fr/
+    ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
+    ftp://ftp.club-internet.fr/pub/perl/CPAN/
+    http://fr.cpan.org/
+    ftp://ftp.lip6.fr/pub/perl/CPAN/
+    ftp://ftp.oleane.net/pub/mirrors/CPAN/
+    ftp://ftp.pasteur.fr/pub/computing/CPAN/
+    http://cpan.cict.fr/
+    ftp://cpan.cict.fr/pub/CPAN/
+    ftp://ftp.uvsq.fr/pub/perl/CPAN/
+
+=item *
+
+Germany
+
+    ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
+    ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
+    ftp://ftp.uni-erlangen.de/pub/source/CPAN/
+    ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
+    ftp://ftp.gigabell.net/pub/CPAN/
+    http://ftp.gwdg.de/pub/languages/perl/CPAN/
+    ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
+    ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
+    ftp://ftp.leo.org/pub/CPAN/
+    http://cpan.noris.de/
+    ftp://cpan.noris.de/pub/CPAN/
+    ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
+    ftp://ftp.gmd.de/mirrors/CPAN/
+
+=item *
+
+Greece
+
+    ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
+    ftp://ftp.ntua.gr/pub/lang/perl/
+
+=item *
+
+Hungary
+
+    http://cpan.artifact.hu/
+    ftp://cpan.artifact.hu/CPAN/
+    http://ftp.kfki.hu/pub/CPAN/
+    ftp://ftp.kfki.hu/pub/CPAN/
+
+=item *
+
+Iceland
+
+    http://ftp.rhnet.is/pub/CPAN/
+    ftp://ftp.rhnet.is/pub/CPAN/
+
+=item *
+
+Ireland
+
+    http://cpan.indigo.ie/
+    ftp://cpan.indigo.ie/pub/CPAN/
+    http://sunsite.compapp.dcu.ie/pub/perl/
+    ftp://sunsite.compapp.dcu.ie/pub/perl/
+
+=item *
+
+Italy
+
+    http://cpan.nettuno.it/
+    http://gusp.dyndns.org/CPAN/
+    ftp://gusp.dyndns.org/pub/CPAN
+    http://softcity.iol.it/cpan
+    ftp://softcity.iol.it/pub/cpan
+    ftp://ftp.unina.it/pub/Other/CPAN/
+    ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
+    ftp://cis.uniRoma2.it/CPAN/
+    ftp://ftp.edisontel.it/pub/CPAN_Mirror/
+    ftp://ftp.flashnet.it/pub/CPAN/
+
+=item *
+
+Latvia
+
+    http://kvin.lv/pub/CPAN/
+
+=item *
+
+Lithuania
+
+    ftp://ftp.unix.lt/pub/CPAN/
+
+=item *
+
+Netherlands
+
+    ftp://download.xs4all.nl/pub/mirror/CPAN/
+    ftp://ftp.nl.uu.net/pub/CPAN/
+    ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
+    http://cpan.cybercomm.nl/
+    ftp://mirror.cybercomm.nl/pub/cpan/
+    ftp://ftp.cpan.nl/pub/CPAN/
+    http://www.cs.uu.nl/mirror/CPAN/
+    ftp://ftp.cs.uu.nl/mirror/CPAN/
+
+=item *
+
+Norway
+
+    ftp://ftp.uninett.no/pub/languages/perl/CPAN
+    ftp://ftp.uit.no/pub/languages/perl/cpan/
+
+=item *
+
+Poland
+
+    ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
+    http://www.fic.uni.lodz.pl/pub/CPAN
+    ftp://ftp.fic.uni.lodz.pl/pub/CPAN
+    ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
+    ftp://ftp.man.torun.pl/pub/doc/CPAN/
+    ftp://sunsite.icm.edu.pl/pub/CPAN/
+
+=item *
+
+Portugal
+
+    ftp://ftp.ua.pt/pub/CPAN/
+    ftp://perl.di.uminho.pt/pub/CPAN/
+    http://cpan.ip.pt/
+    ftp://cpan.ip.pt/pub/perl/
+    ftp://ftp.ist.utl.pt/pub/CPAN/
+    http://cpan.ip.pt/
+    ftp://cpan.ip.pt/pub/cpan/
+    ftp://ftp.netc.pt/pub/CPAN/
+    ftp://ftp.up.pt/pub/CPAN
+
+=item *
+
+Romania
+
+    ftp://archive.logicnet.ro/mirrors/ftp.cpan.org/CPAN/
+    ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
+    ftp://ftp.dntis.ro/pub/cpan/
+    ftp://ftp.opsynet.com/cpan/
+    ftp://ftp.dnttm.ro/pub/CPAN/
+    ftp://ftp.lasting.ro/pub/CPAN
+    ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
+
+=item *
+
+Russia
+
+    ftp://ftp.chg.ru/pub/lang/perl/CPAN/
+    http://cpan.rinet.ru/
+    ftp://cpan.rinet.ru/pub/mirror/CPAN/
+    ftp://ftp.aha.ru/pub/CPAN/
+    http://cpan.sai.msu.ru/
+    ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
+
+=item *
+
+Slovakia
+
+    ftp://ftp.entry.sk/pub/languages/perl/CPAN/
+
+=item *
+
+Slovenia
+
+    ftp://ftp.arnes.si/software/perl/CPAN/
+
+=item *
+
+Spain
+
+    ftp://ftp.rediris.es/mirror/CPAN/
+    ftp://ftp.etse.urv.es/pub/perl/
+
+=item *
+
+Sweden
+
+    http://ftp.du.se/CPAN/
+    ftp://ftp.du.se/pub/CPAN/
+    ftp://mirror.dataphone.se/pub/CPAN
+    ftp://ftp.sunet.se/pub/lang/perl/CPAN/
+
+=item *
+
+Switzerland
+
+    ftp://ftp.danyk.ch/CPAN/
+    ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
+
+=item *
+
+Turkey
+
+    ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
+
+=item *
+
+Ukraine
+
+    http://cpan.org.ua/
+    ftp://cpan.org.ua/
+    ftp://ftp.perl.org.ua/pub/CPAN/
+
+=back
+
+=head2 North America
+
+=over 4
+
+=item *
+
+Canada
+
+=over 8
+
+=item *
+
+Alberta
+
+    http://sunsite.ualberta.ca/pub/Mirror/CPAN/
+    ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
+
+=item *
+
+Manitoba
+
+    http://theoryx5.uwinnipeg.ca/pub/CPAN/
+    ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
+
+=item *
+
+Nova Scotia
+
+    ftp://cpan.chebucto.ns.ca/pub/CPAN/
+
+=item *
+
+Ontario
+
+    ftp://ftp.crc.ca/pub/CPAN/
+
+=item *
+
+Quebec
+
+    http://cpan.mirror.smartworker.org/
+    ftp://cpan.mirror.smartworker.org/pub/CPAN
+
+=back
+
+=item *
+
+Mexico
+
+    http://cpan.azc.uam.mx
+    ftp://cpan.azc.uam.mx/mirrors/CPAN
+    http://cpan.unam.mx/
+    ftp://cpan.unam.mx/pub/CPAN
+    http://www.msg.com.mx/CPAN/
+    ftp://ftp.msg.com.mx/pub/CPAN/
+
+=item *
+
+United States
+
+=over 8
+
+=item *
+
+Alabama
+
+    http://mirror.hiwaay.net/CPAN/
+    ftp://mirror.hiwaay.net/CPAN/
+
+=item *
+
+California
+
+    http://www.cpan.org/
+    ftp://cpan.valueclick.com/pub/CPAN/
+    http://mirrors.gossamer-threads.com/CPAN
+    ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
+    ftp://ftp.digital.com/pub/plan/perl/CPAN/
+    http://mirrors.kernel.org/cpan/
+    ftp://mirrors.kernel.org/pub/CPAN
+    http://cpan.digisle.net/
+    ftp://cpan.digisle.net/pub/CPAN
+    http://www.linuxjar.com/CPAN
+    ftp://linuxjar.com/pub/CPAN
+    http://www.perl.com/CPAN/
+    http://download.sourceforge.net/mirrors/CPAN/
+
+=item *
+
+Colorado
+
+    ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+
+=item *
+
+District of Columbia
+
+    ftp://ftp.dc.us.telia.net/pub/cpan/
+
+=item *
+
+Florida
+
+    ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
+    http://mirror.csit.fsu.edu/pub/CPAN/
+    ftp://mirror.csit.fsu.edu/pub/CPAN/
+
+=item *
+
+Illinois
+
+    http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
+    ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
+
+=item *
+
+Indiana
+
+    ftp://ftp.uwsg.indiana.edu/pub/perl/CPAN/
+    http://cpan.nitco.com/
+    ftp://cpan.nitco.com/pub/CPAN/
+    http://archive.progeny.com/CPAN/
+    ftp://archive.progeny.com/CPAN/
+    ftp://cpan.in-span.net/
+    http://csociety-ftp.ecn.purdue.edu/pub/CPAN
+    ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
+
+=item *
+
+Kentucky
+
+    http://cpan.uky.edu/
+    ftp://cpan.uky.edu/pub/CPAN/
+
+=item *
+
+Massachusetts
+
+    ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
+    http://cpan.mirrors.netnumina.com/
+    ftp://mirrors.netnumina.com/cpan/
+    ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/
+
+=item *
+
+Michigan
+
+    ftp://cpan.cse.msu.edu/
+
+=item *
+
+New Jersey
+
+    ftp://ftp.cpanel.net/pub/CPAN/
+
+=item *
+
+New York
+
+    ftp://ftp.freesoftware.com/pub/perl/CPAN/
+    ftp://ftp.stealth.net/pub/CPAN/
+    http://www.rge.com/pub/languages/perl/
+    ftp://ftp.rge.com/pub/languages/perl/
+    ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
+
+=item *
+
+North Carolina
+
+    ftp://ftp.duke.edu/pub/perl/
+
+=item *
+
+Ohio
+
+    ftp://ftp.loaded.net/pub/CPAN/
+
+=item *
+
+Oklahoma
+
+    ftp://ftp.ou.edu/mirrors/CPAN/
+
+=item *
+
+Oregon
+
+    ftp://ftp.orst.edu/pub/CPAN
+
+=item *
+
+Pennsylvania
+
+    http://ftp.epix.net/CPAN/
+    ftp://ftp.epix.net/pub/languages/perl/
+    http://mirrors.phenominet.com/pub/CPAN/
+    ftp://mirrors.phenominet.com/pub/CPAN/
+    ftp://carroll.cac.psu.edu/pub/CPAN/
+
+=item *
+
+Tennessee
+
+    ftp://ftp.sunsite.utk.edu/pub/CPAN/
+
+=item *
+
+Texas
+
+    http://ftp.sedl.org/pub/mirrors/CPAN/
+
+=item *
+
+Utah
+
+    ftp://mirror.xmission.com/CPAN/
+
+=item *
+
+Virginia
+
+    http://mirrors.rcn.net/pub/lang/CPAN/
+    ftp://mirrors.rcn.net/pub/lang/CPAN/
+    ftp://ruff.cs.jmu.edu/pub/CPAN/
+    http://perl.Liquidation.com/CPAN/
+
+=item *
+
+Washington
+
+    http://cpan.llarian.net/
+    ftp://cpan.llarian.net/pub/CPAN/
+    http://cpan.mirrorcentral.com/
+    ftp://ftp.mirrorcentral.com/pub/CPAN/
+    ftp://ftp-mirror.internap.com/pub/CPAN/
+
+=back
+
+=back
+
+=head2 Oceania
+
+=over 4
+
+=item *
+
+Australia
+
+    http://ftp.planetmirror.com/pub/CPAN/
+    ftp://ftp.planetmirror.com/pub/CPAN/
+    ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
+    ftp://cpan.topend.com.au/pub/CPAN/
+
+=item *
+
+New Zealand
+    ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
+
+=back
+
+=head2 South America
+
+=over 4
+
+=item *
+
+Argentina
+
+    ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
+
+=item *
+
+Brazil
+
+    ftp://cpan.pop-mg.com.br/pub/CPAN/
+    ftp://ftp.matrix.com.br/pub/perl/CPAN/
+
+=item *
+
+Chile
+
+    ftp://ftp.psinet.cl/pub/programming/perl/CPAN/
+    ftp://sunsite.dcc.uchile.cl/pub/lang/perl/
+
+=back
+
+
+For an up-to-date listing of CPAN sites,
+see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
+
+=head1 Modules: Creation, Use, and Abuse
+
+(The following section is borrowed directly from Tim Bunce's modules
+file, available at your nearest CPAN site.)
+
+Perl implements a class using a package, but the presence of a
+package doesn't imply the presence of a class.  A package is just a
+namespace.  A class is a package that provides subroutines that can be
+used as methods.  A method is just a subroutine that expects, as its
+first argument, either the name of a package (for "static" methods),
+or a reference to something (for "virtual" methods).
+
+A module is a file that (by convention) provides a class of the same
+name (sans the .pm), plus an import method in that class that can be
+called to fetch exported symbols.  This module may implement some of
+its methods by loading dynamic C or C++ objects, but that should be
+totally transparent to the user of the module.  Likewise, the module
+might set up an AUTOLOAD function to slurp in subroutine definitions on
+demand, but this is also transparent.  Only the F<.pm> file is required to
+exist.  See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
+the AUTOLOAD mechanism.
+
+=head2 Guidelines for Module Creation
+
+=over 4
+
+=item  *
+
+Do similar modules already exist in some form?
+
+If so, please try to reuse the existing modules either in whole or
+by inheriting useful features into a new class.  If this is not
+practical try to get together with the module authors to work on
+extending or enhancing the functionality of the existing modules.
+A perfect example is the plethora of packages in perl4 for dealing
+with command line options.
+
+If you are writing a module to expand an already existing set of
+modules, please coordinate with the author of the package.  It
+helps if you follow the same naming scheme and module interaction
+scheme as the original author.
+
+=item  *
+
+Try to design the new module to be easy to extend and reuse.
+
+Try to C<use warnings;> (or C<use warnings qw(...);>).
+Remember that you can add C<no warnings qw(...);> to individual blocks
+of code that need less warnings.
+
+Use blessed references.  Use the two argument form of bless to bless
+into the class name given as the first parameter of the constructor,
+e.g.,:
+
+ sub new {
+     my $class = shift;
+     return bless {}, $class;
+ }
+
+or even this if you'd like it to be used as either a static
+or a virtual method.
+
+ sub new {
+     my $self  = shift;
+     my $class = ref($self) || $self;
+     return bless {}, $class;
+ }
+
+Pass arrays as references so more parameters can be added later
+(it's also faster).  Convert functions into methods where
+appropriate.  Split large methods into smaller more flexible ones.
+Inherit methods from other modules if appropriate.
+
+Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
+Generally you can delete the C<eq 'FOO'> part with no harm at all.
+Let the objects look after themselves! Generally, avoid hard-wired
+class names as far as possible.
+
+Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
+C<< $r->func() >> would work (see L<perlbot> for more details).
+
+Use autosplit so little used or newly added functions won't be a
+burden to programs that don't use them. Add test functions to
+the module after __END__ either using AutoSplit or by saying:
+
+ eval join('',<main::DATA>) || die $@ unless caller();
+
+Does your module pass the 'empty subclass' test? If you say
+C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
+to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
+does your application still work if you change:  C<$obj = new YOURCLASS;>
+into: C<$obj = new SUBCLASS;> ?
+
+Avoid keeping any state information in your packages. It makes it
+difficult for multiple other packages to use yours. Keep state
+information in objects.
+
+Always use B<-w>.
+
+Try to C<use strict;> (or C<use strict qw(...);>).
+Remember that you can add C<no strict qw(...);> to individual blocks
+of code that need less strictness.
+
+Always use B<-w>.
+
+Follow the guidelines in the perlstyle(1) manual.
+
+Always use B<-w>.
+
+=item  *
+
+Some simple style guidelines
+
+The perlstyle manual supplied with Perl has many helpful points.
+
+Coding style is a matter of personal taste. Many people evolve their
+style over several years as they learn what helps them write and
+maintain good code.  Here's one set of assorted suggestions that
+seem to be widely used by experienced developers:
 
 Use underscores to separate words.  It is generally easier to read
 $var_names_like_this than $VarNamesLikeThis, especially for
@@ -1198,7 +1847,9 @@ e.g., C<< $obj->as_string() >>.
 You can use a leading underscore to indicate that a variable or
 function should not be used outside the package that defined it.
 
-=item Select what to export.
+=item  *
+
+Select what to export.
 
 Do NOT export method names!
 
@@ -1222,7 +1873,9 @@ As a general rule, if the module is trying to be object oriented
 then export nothing. If it's just a collection of functions then
 @EXPORT_OK anything but use @EXPORT with caution.
 
-=item Select a name for the module.
+=item  *
+
+Select a name for the module.
 
 This name should be as descriptive, accurate, and complete as
 possible.  Avoid any risk of ambiguity. Always try to use two or
@@ -1256,7 +1909,9 @@ To be portable each component of a module name should be limited to
 11 characters. If it might be used on MS-DOS then try to ensure each is
 unique in the first 8 characters. Nested modules make this easier.
 
-=item Have you got it right?
+=item  *
+
+Have you got it right?
 
 How do you know that you've made the right decisions? Have you
 picked an interface design that will cause problems later? Have
@@ -1275,7 +1930,9 @@ Don't worry about posting if you can't say when the module will be
 ready - just say so in the message. It might be worth inviting
 others to help you, they may be able to complete it for you!
 
-=item README and other Additional Files.
+=item  *
+
+README and other Additional Files.
 
 It's well known that software developers usually fully document the
 software they write. If, however, the world is in urgent need of
@@ -1285,24 +1942,31 @@ documentation please at least provide a README file containing:
 =over 10
 
 =item *
+
 A description of the module/package/extension etc.
 
 =item *
+
 A copyright notice - see below.
 
 =item *
+
 Prerequisites - what else you may need to have.
 
 =item *
+
 How to build it - possible changes to Makefile.PL etc.
 
 =item *
+
 How to install it.
 
 =item *
+
 Recent changes in this release, especially incompatibilities
 
 =item *
+
 Changes / enhancements you plan to make in the future.
 
 =back
@@ -1313,7 +1977,9 @@ Copying, ToDo etc.
 
 =over 4
 
-=item Adding a Copyright Notice.
+=item *
+
+Adding a Copyright Notice.
 
 How you choose to license your work is a personal decision.
 The general mechanism is to assert your Copyright and then make
@@ -1334,7 +2000,9 @@ This statement should at least appear in the README file. You may
 also wish to include it in a Copying file and your source files.
 Remember to include the other words in addition to the Copyright.
 
-=item Give the module a version/issue/release number.
+=item  *
+
+Give the module a version/issue/release number.
 
 To be fully compatible with the Exporter and MakeMaker modules you
 should store your module's version number in a non-my package
@@ -1348,7 +2016,9 @@ Use the number in announcements and archive file names when
 releasing the module (ModuleName-1.02.tar.Z).
 See perldoc ExtUtils::MakeMaker.pm for details.
 
-=item How to release and distribute a module.
+=item  *
+
+How to release and distribute a module.
 
 It's good idea to post an announcement of the availability of your
 module (or the module itself if small) to the comp.lang.perl.announce
@@ -1371,8 +2041,8 @@ FTP Archives for Perl Modules:
 
 Follow the instructions and links on:
 
-   http://www.perl.com/CPAN/modules/00modlist.long.html
-   http://www.perl.com/CPAN/modules/04pause.html
+   http://www.cpan.org/modules/00modlist.long.html
+   http://www.cpan.org/modules/04pause.html
 
 or upload to one of these sites:
 
@@ -1387,7 +2057,9 @@ CPAN!
 
 Please remember to send me an updated entry for the Module list!
 
-=item Take care when changing a released module.
+=item  *
+
+Take care when changing a released module.
 
 Always strive to remain compatible with previous released versions.
 Otherwise try to add a mechanism to revert to the
@@ -1401,26 +2073,34 @@ old behavior if people rely on it.  Document incompatible changes.
 
 =over 4
 
-=item There is no requirement to convert anything.
+=item  *
+
+There is no requirement to convert anything.
 
 If it ain't broke, don't fix it! Perl 4 library scripts should
 continue to work with no problems. You may need to make some minor
 changes (like escaping non-array @'s in double quoted strings) but
 there is no need to convert a .pl file into a Module for just that.
 
-=item Consider the implications.
+=item  *
+
+Consider the implications.
 
 All Perl applications that make use of the script will need to
 be changed (slightly) if the script is converted into a module.  Is
 it worth it unless you plan to make other changes at the same time?
 
-=item Make the most of the opportunity.
+=item  *
+
+Make the most of the opportunity.
 
 If you are going to convert the script to a module you can use the
 opportunity to redesign the interface.  The guidelines for module
 creation above include many of the issues you should consider.
 
-=item The pl2pm utility will get you started.
+=item  *
+
+The pl2pm utility will get you started.
 
 This utility will read *.pl files (given as parameters) and write
 corresponding *.pm files. The pl2pm utilities does the following:
@@ -1428,15 +2108,19 @@ corresponding *.pm files. The pl2pm utilities does the following:
 =over 10
 
 =item *
+
 Adds the standard Module prologue lines
 
 =item *
+
 Converts package specifiers from ' to ::
 
 =item *
+
 Converts die(...) to croak(...)
 
 =item *
+
 Several other minor changes
 
 =back
@@ -1451,26 +2135,26 @@ Don't delete the original .pl file till the new .pm one works!
 
 =over 4
 
-=item *
+=item  *
 
 Complete applications rarely belong in the Perl Module Library.
 
-=item *
+=item  *
 
 Many applications contain some Perl code that could be reused.
 
 Help save the world! Share your code in a form that makes it easy
 to reuse.
 
-=item *
+=item  *
 
 Break-out the reusable code into one or more separate module files.
 
-=item *
+=item  *
 
 Take the opportunity to reconsider and redesign the interfaces.
 
-=item *
+=item  *
 
 In some cases the 'application' can then be reduced to a small