Regen perlmodlib.
[p5sagit/p5-mst-13.2.git] / pod / perlmodlib.pod
index d0bd1c9..beb6a42 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
@@ -62,6 +65,18 @@ Postpone load of modules until a function is used
 
 Establish IS-A relationship with base class at compile time
 
+=item bigint
+
+Transparent big integer support for Perl
+
+=item bignum
+
+Transparent BigNumber support for Perl
+
+=item bigrat
+
+Transparent BigNumber/BigRational support for Perl
+
 =item blib
 
 Use MakeMaker's uninstalled version of a package
@@ -72,7 +87,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 +97,10 @@ Declare constants
 
 Perl compiler pragma to force verbose warning diagnostics
 
+=item encoding
+
+Allows you to write your script in non-ascii or non-utf8
+
 =item fields
 
 Compile-time class fields
@@ -90,9 +109,13 @@ Compile-time class fields
 
 Control the filetest permission operators
 
+=item if
+
+C<use> a Perl module if a condition holds
+
 =item integer
 
-Compute arithmetic in integer instead of double
+Use integer arithmetic instead of floating point
 
 =item less
 
@@ -114,10 +137,6 @@ Restrict unsafe operations when compiling
 
 Package for overloading perl operations
 
-=item perlio
-
-Configure C level IO
-
 =item re
 
 Alter regular expression behaviour
@@ -126,6 +145,10 @@ Alter regular expression behaviour
 
 Enable simple signal handling
 
+=item sort
+
+Control sort() behaviour
+
 =item strict
 
 Restrict unsafe constructs
@@ -134,14 +157,22 @@ Restrict unsafe constructs
 
 Predeclare sub names
 
+=item threads
+
+Perl extension allowing use of interpreter based threads from perl
+
 =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 +195,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
@@ -200,6 +235,10 @@ Perl compiler's C backend
 
 Perl compiler's optimized C translation backend
 
+=item B::Concise
+
+Walk Perl syntax tree, printing concise info about ops
+
 =item B::Debug
 
 Walk Perl syntax tree, printing debug info about ops
@@ -276,6 +315,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,10 +335,22 @@ 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
 
+=item Config
+
+Access Perl configuration information
+
 =item Cwd
 
 Get pathname of current working directory
@@ -312,6 +367,10 @@ Perl5 access to Berkeley DB version 1.x
 
 Generate stubs for a SelfLoading module
 
+=item Digest
+
+Modules that calculate message digests
+
 =item DirHandle
 
 Supply object methods for directory handles
@@ -332,6 +391,10 @@ Use nice English (or awk) names for ugly punctuation variables
 
 Perl module that imports environment variables as scalars or arrays
 
+=item Errno
+
+System errno constants
+
 =item Exporter
 
 Implements default import method for modules
@@ -344,6 +407,14 @@ Exporter guts
 
 Utilities to replace common UNIX commands in Makefiles etc.
 
+=item ExtUtils::Command::MM
+
+Commands for the MM's to use in Makefiles
+
+=item ExtUtils::Constant
+
+Generate XS code to import C header constants
+
 =item ExtUtils::Embed
 
 Utilities for embedding Perl in C/C++ applications
@@ -360,14 +431,42 @@ Inventory management of installed modules
 
 Determine libraries to use and how to use them
 
+=item ExtUtils::MM
+
+OS adjusted ExtUtils::MakeMaker subclass
+
+=item ExtUtils::MM_Any
+
+Platform agnostic MM methods
+
+=item ExtUtils::MM_BeOS
+
+Methods to override UN*X behaviour in ExtUtils::MakeMaker
+
 =item ExtUtils::MM_Cygwin
 
 Methods to override UN*X behaviour in ExtUtils::MakeMaker
 
+=item ExtUtils::MM_DOS
+
+DOS specific subclass of ExtUtils::MM_Unix
+
+=item ExtUtils::MM_MacOS
+
+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
 
+=item ExtUtils::MM_UWIN
+
+U/WIN specific subclass of ExtUtils::MM_Unix
+
 =item ExtUtils::MM_Unix
 
 Methods used by ExtUtils::MakeMaker
@@ -380,6 +479,14 @@ Methods to override UN*X behaviour in ExtUtils::MakeMaker
 
 Methods to override UN*X behaviour in ExtUtils::MakeMaker
 
+=item ExtUtils::MM_Win95
+
+Method to customize MakeMaker for Win9X
+
+=item ExtUtils::MY
+
+ExtUtils::MakeMaker subclass for customization
+
 =item ExtUtils::MakeMaker
 
 Create an extension Makefile
@@ -434,7 +541,7 @@ DOS like globbing and then some
 
 =item File::Find
 
-Traverse a file tree
+Traverse a directory tree.
 
 =item File::Path
 
@@ -444,6 +551,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 +565,11 @@ Portably perform operations on file names
 
 =item File::Spec::Mac
 
-File::Spec for MacOS
+File::Spec for Mac OS (Classic)
+
+=item File::Spec::NW5
+
+Methods for NW5 file specs
 
 =item File::Spec::OS2
 
@@ -462,7 +577,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
 
@@ -504,10 +619,22 @@ Extended processing of command line options
 
 Process single-character switches with switch clustering
 
+=item Hash::Util
+
+A selection of general-utility hash subroutines
+
 =item I18N::Collate
 
 Compare 8-bit scalar data according to the current locale
 
+=item I18N::LangTags
+
+Functions for dealing with RFC3066-style language tags
+
+=item I18N::LangTags::List
+
+Tags and names for human languages
+
 =item IO
 
 Load various IO modules
@@ -520,14 +647,50 @@ 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 Locale::Script
+
+ISO codes for script identification (ISO 15924)
+
 =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::BigRat
+
+Arbitrarily big rationals
+
 =item Math::Complex
 
 Complex numbers and associated mathematical functions
@@ -536,18 +699,94 @@ Complex numbers and associated mathematical functions
 
 Trigonometric functions
 
+=item Memoize
+
+Make 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
+
+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 NDBM_File
 
 Tied access to ndbm files
 
+=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 (RFC1939)
+
 =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
@@ -572,6 +811,14 @@ Tied access to odbm files
 
 Disable named opcodes when compiling perl code
 
+=item POSIX
+
+Perl interface to IEEE Std 1003.1
+
+=item PerlIO
+
+On demand loader for PerlIO layers and root of PerlIO::* name space
+
 =item Pod::Checker
 
 Check pod documents for syntax errors
@@ -580,6 +827,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 +847,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 +875,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
@@ -658,7 +917,11 @@ Load the C socket.h defines and structure manipulators
 
 =item Storable
 
-Persistency for perl data structures
+Persistence for Perl data structures
+
+=item Switch
+
+A switch statement for Perl
 
 =item Symbol
 
@@ -684,14 +947,46 @@ 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::Harness::Assert
+
+Simple assert
+
+=item Test::Harness::Iterator
+
+Internal Test::Harness Iterator
+
+=item Test::Harness::Straps
+
+Detailed analysis of test results
+
+=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,14 +995,34 @@ 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 (for old code only)
+
+=item Thread::Queue
+
+Thread-safe queues (for old code only)
+
+=item Thread::Semaphore
+
+Thread-safe semaphores (for old code only)
+
 =item Tie::Array
 
 Base class for tied arrays
 
+=item Tie::File
+
+Access the lines of a disk file via a Perl array
+
 =item Tie::Handle
 
 Base class definitions for tied handles
@@ -716,6 +1031,10 @@ Base class definitions for tied handles
 
 Base class definitions for tied hashes
 
+=item Tie::Memoize
+
+Add data to hash when needed
+
 =item Tie::RefHash
 
 Use references as hash keys
@@ -748,6 +1067,14 @@ Internal object used by Time::gmtime and Time::localtime
 
 Base class for ALL classes (blessed references)
 
+=item Unicode::Collate
+
+Unicode Collation Algorithm
+
+=item Unicode::UCD
+
+Unicode character database
+
 =item User::grent
 
 By-name interface to Perl's built-in getgr*() functions
@@ -756,6 +1083,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 +1107,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,8 +1123,7 @@ 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
@@ -890,271 +1220,846 @@ Miscellaneous Modules
 Registered CPAN sites as of this writing include the following.
 You should try to choose one close to you:
 
-=over
+=head2 Africa
 
-=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/
+=over 4
 
-=back
+=item *
 
-For an up-to-date listing of CPAN sites,
-see http://www.perl.com/perl/CPAN/SITES or ftp://www.perl.com/CPAN/SITES .
+South Africa
 
-=head1 Modules: Creation, Use, and Abuse
+    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/CPAN/
 
-(The following section is borrowed directly from Tim Bunce's modules
-file, available at your nearest CPAN site.)
+=back
 
-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).
+=head2 Asia
 
-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.
+=over 4
 
-=head2 Guidelines for Module Creation
+=item *
 
-=over 4
+China
 
-=item Do similar modules already exist in some form?
+    ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
+    http://www2.linuxforum.net/mirror/CPAN/
+    http://cpan.shellhung.org/
+    ftp://ftp.shellhung.org/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.
+India
 
-=item Try to design the new module to be easy to extend and reuse.
+    http://cpan.in.freeos.com
+    ftp://cpan.in.freeos.com/pub/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.,:
+Indonesia
 
- sub new {
-     my $class = shift;
-     return bless {}, $class;
- }
+    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/
 
-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;
- }
+Israel
 
-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.
+    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/
 
-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).
+Japan
 
-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:
+    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.ayamura.org/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/
 
- 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;> ?
+Korea
 
-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://mirror.Mazic.org/pub/CPAN
+    ftp://mirror.Mazic.org/pub/CPAN
 
-Always use B<-w>.
+=item *
+
+Philippines
+
+    http://www.adzu.edu.ph/CPAN
+
+=item *
+
+Russian Federation
+
+    http://cpan.tomsk.ru
+    ftp://cpan.tomsk.ru/pub/CPAN
+
+=item *
+
+Saudi Arabia
+
+    ftp://ftp.isu.net.sa/pub/CPAN/
+
+=item *
+
+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/
+    http://ftp.xgate.co.kr/cpan/
+    ftp://ftp.xgate.co.kr/pub/mirror/CPAN
+
+=item *
+
+Taiwan
+
+    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
+
+    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
+
+    http://cpan.lirex.net/
+    ftp://ftp.lirex.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 *
+
+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
+
+    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://pandemonium.tiscali.de/pub/CPAN/
+    ftp://pandemonium.tiscali.de/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.acn.gr/pub/lang/perl/CPAN
+    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/packages/perl/CPAN/
+    ftp://ftp.kfki.hu/pub/packages/perl/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/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/
+    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/
+    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.dei.uc.pt/
+    ftp://ftp.dei.uc.pt/pub/CPAN
+    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://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
+    ftp://ftp.dntis.ro/pub/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
+
+    http://ftp.cvt.stuba.sk/pub/CPAN/
+    ftp://ftp.cvt.stuba.sk/pub/CPAN/
+
+=item *
+
+Slovenia
+
+    ftp://ftp.arnes.si/software/perl/CPAN/
+
+=item *
+
+Spain
+
+    http://cpan.imasd.elmundo.es/
+    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/
+
+=item *
+
+United Kingdom
+
+    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.teleglobe.net/
+    ftp://cpan.teleglobe.net/pub/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/
+    http://mirror.uklinux.net/CPAN/
+    ftp://mirror.uklinux.net/pub/CPAN/
+    http://cpan.mirrors.clockerz.net/
+    ftp://ftp.clockerz.net/pub/CPAN/
+    ftp://usit.shef.ac.uk/pub/packages/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/
+
+=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/
+    http://mirrors.kernel.org/cpan/
+    ftp://mirrors.kernel.org/pub/CPAN
+    http://cpan.digisle.net/
+    ftp://cpan.digisle.net/pub/CPAN
+    http://www.perl.com/CPAN/
+    http://download.sourceforge.net/mirrors/CPAN/
+
+=item *
+
+Colorado
+
+    ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+
+=item *
+
+Delaware
+
+    http://ftp.lug.udel.edu/pub/CPAN
+    ftp://ftp.lug.udel.edu/pub/CPAN
+
+=item *
+
+District of Columbia
+
+    ftp://ftp.dc.aleron.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.iu.edu/pub/perl/CPAN/
+    http://cpan.netnitco.net/
+    ftp://cpan.netnitco.net/pub/mirrors/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/
+
+=item *
+
+Michigan
+
+    ftp://cpan.cse.msu.edu/
+
+=item *
+
+New Jersey
+
+    ftp://ftp.cpanel.net/pub/CPAN/
+    http://cpan.teleglobe.net/
+    ftp://cpan.teleglobe.net/pub/CPAN
+
+=item *
+
+New York
+
+    ftp://ftp.exobit.org/pub/perl/CPAN
+    http://cpan.belfry.net/
+    http://cpan.thepirtgroup.com/
+    ftp://cpan.thepirtgroup.com/
+    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/
+    http://cpan.pair.com/
+    ftp://cpan.pair.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/
+    ftp://mirror.telentente.com/pub/CPAN
+
+=item *
+
+Utah
+
+    ftp://mirror.xmission.com/CPAN/
+
+=item *
+
+Virginia
+
+    http://mirrors.rcn.net/pub/lang/CPAN/
+    ftp://mirrors.rcn.net/pub/lang/CPAN/
+    http://perl.secsup.org/
+    ftp://perl.secsup.org/pub/perl/
+    http://mirrors.phihost.com/CPAN/
+    ftp://mirrors.phihost.com/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/
+
+=item *
+
+Wisconsin
+
+    http://mirror.sit.wisc.edu/pub/CPAN/
+    ftp://mirror.sit.wisc.edu/pub/CPAN/
+
+=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/
+
+=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
@@ -1166,7 +2071,9 @@ Follow the guidelines in the perlstyle(1) manual.
 
 Always use B<-w>.
 
-=item Some simple style guidelines
+=item  *
+
+Some simple style guidelines
 
 The perlstyle manual supplied with Perl has many helpful points.
 
@@ -1198,7 +2105,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 +2131,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 +2167,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 +2188,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 +2200,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 +2235,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 +2258,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 +2274,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 +2299,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 +2315,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 +2331,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 +2366,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 +2393,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