X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.pod;h=d76b5c167c8bce84e277b62e108b1cb9b5ddc1d3;hb=53273a086103cdbbf7ebdd5f1a18b2c0777cbc1b;hp=1c5808058ea38761adc4475b4f40ba09ddac97d4;hpb=2e1d04bc4fa2d036f823d5251c731f594e0246dd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.pod b/pod/perlmodlib.pod index 1c58080..d76b5c1 100644 --- a/pod/perlmodlib.pod +++ b/pod/perlmodlib.pod @@ -1,14 +1,15 @@ +=for maintainers +Generated by perlmodlib.PL -- DO NOT EDIT! + =head1 NAME perlmodlib - constructing new Perl modules and finding existing ones -=head1 DESCRIPTION - =head1 THE PERL MODULE LIBRARY -Many modules are included the Perl distribution. These are described +Many modules are included in the Perl distribution. These are described below, and all end in F<.pm>. You may discover compiled library -file (usually ending in F<.so>) or small pieces of modules to be +files (usually ending in F<.so>) or small pieces of modules to be autoloaded (ending in F<.al>); these were automatically generated by the installation process. You may also discover files in the library directory that end in either F<.pl> or F<.ph>. These are @@ -46,6 +47,14 @@ The following pragmas are defined (and have their own documentation). =over 12 +=item assertions + +Select assertions in blocks of code + +=item assertions::activate + +Activate assertions + =item attributes Get/set subroutine or variable attributes @@ -60,7 +69,19 @@ Postpone load of modules until a function is used =item base -Establish IS-A relationship with base class at compile time +Establish IS-A relationship with base classes at compile time + +=item bigint + +Transparent BigInteger support for Perl + +=item bignum + +Transparent BigNumber support for Perl + +=item bigrat + +Transparent BigNumber/BigRational support for Perl =item blib @@ -72,7 +93,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 @@ -80,7 +101,11 @@ Declare constants =item diagnostics -Perl compiler pragma to force verbose warning diagnostics +Produce verbose warning diagnostics + +=item encoding + +Allows you to write your script in non-ascii or non-utf8 =item fields @@ -90,9 +115,13 @@ Compile-time class fields Control the filetest permission operators +=item if + +C 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 @@ -108,7 +137,7 @@ Use and avoid POSIX locales for built-in operations =item open -Set default disciplines for input and output +Set default PerlIO layers for input and output =item ops @@ -126,6 +155,10 @@ Alter regular expression behaviour Enable simple signal handling +=item sort + +Control sort() behaviour + =item strict Restrict unsafe constructs @@ -134,18 +167,38 @@ Restrict unsafe constructs Predeclare sub names +=item threads + +Perl extension allowing use of interpreter based threads from perl + +=item threads::shared + +Perl extension for sharing data structures between threads + =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 version + +Perl extension for Version Objects + +=item vmsish + +Control VMS-specific language features + =item warnings Control optional warnings +=item warnings::register + +Warnings import function + =back =head2 Standard Modules @@ -154,12 +207,20 @@ Standard, bundled modules are all expected to behave in a well-defined manner with respect to namespace pollution because they use the Exporter module. See their own documentation for details. +It's possible that not all modules listed below are installed on your +system. For example, the GDBM_File module will not be installed if you +don't have the gdbm library. + =over 12 =item AnyDBM_File Provide framework for multiple DBMs +=item Attribute::Handlers + +Simpler definition of attribute handlers + =item AutoLoader Load subroutines only on demand @@ -196,6 +257,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 @@ -220,6 +285,10 @@ Show lexical variables used in functions or files 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 @@ -268,6 +337,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 @@ -286,12 +359,20 @@ Warn of errors (from perspective of caller) =item Carp::Heavy -Carp guts +Heavy machinery, 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 @@ -300,14 +381,46 @@ Get pathname of current working directory Programmatic interface to the Perl debugging API (draft, subject to +=item DBM_Filter + +Filter DBM keys/values + =item DB_File Perl5 access to Berkeley DB version 1.x +=item Data::Dumper + +Stringified perl data structures, suitable for both printing and C + +=item Devel::DProf + +A Perl code profiler + +=item Devel::PPPort + +Perl/Pollution/Portability + +=item Devel::Peek + +A data debugging tool for the XS programmer + =item Devel::SelfStubber Generate stubs for a SelfLoading module +=item Digest + +Modules that calculate message digests + +=item Digest::MD5 + +Perl interface to the MD5 Algorithm + +=item Digest::base + +Digest base class + =item DirHandle Supply object methods for directory handles @@ -316,6 +429,102 @@ Supply object methods for directory handles Provides screen dump of Perl data. +=item DynaLoader + +Dynamically load C libraries into Perl code + +=item Encode + +Character encodings + +=item Encode::Alias + +Alias definitions to encodings + +=item Encode::Byte + +Single Byte Encodings + +=item Encode::CJKConstants + +Internally used by Encode::??::ISO_2022_* + +=item Encode::CN + +China-based Chinese Encodings + +=item Encode::CN::HZ + +Internally used by Encode::CN + +=item Encode::Config + +Internally used by Encode + +=item Encode::EBCDIC + +EBCDIC Encodings + +=item Encode::Encoder + +Object Oriented Encoder + +=item Encode::Encoding + +Encode Implementation Base Class + +=item Encode::Guess + +Guesses encoding from data + +=item Encode::JP + +Japanese Encodings + +=item Encode::JP::H2Z + +Internally used by Encode::JP::2022_JP* + +=item Encode::JP::JIS7 + +Internally used by Encode::JP + +=item Encode::KR + +Korean Encodings + +=item Encode::KR::2022_KR + +Internally used by Encode::KR + +=item Encode::MIME::Header + +MIME 'B' and 'Q' header encoding + +=item Encode::PerlIO + +A detailed document on Encode and PerlIO + +=item Encode::Supported + +Encodings supported by Encode + +=item Encode::Symbol + +Symbol Encodings + +=item Encode::TW + +Taiwan-based Chinese Encodings + +=item Encode::Unicode + +Various Unicode Transformation Formats + +=item Encode::Unicode::UTF7 + +UTF-7 encoding + =item English Use nice English (or awk) names for ugly punctuation variables @@ -324,6 +533,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 @@ -336,6 +549,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 @@ -352,14 +573,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 @@ -372,9 +621,33 @@ 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 +Create a module Makefile + +=item ExtUtils::MakeMaker::FAQ + +Frequently Asked Questions About MakeMaker + +=item ExtUtils::MakeMaker::Tutorial + +Writing a module with MakeMaker + +=item ExtUtils::MakeMaker::bytes + +Version-agnostic bytes.pm + +=item ExtUtils::MakeMaker::vmsish + +Platform-agnostic vmsish.pm =item ExtUtils::Manifest @@ -426,7 +699,11 @@ DOS like globbing and then some =item File::Find -Traverse a file tree +Traverse a directory tree. + +=item File::Glob + +Perl extension for BSD glob routine =item File::Path @@ -436,13 +713,21 @@ 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 + =item File::Spec::Functions Portably perform operations on file names =item File::Spec::Mac -File::Spec for MacOS +File::Spec for Mac OS (Classic) =item File::Spec::OS2 @@ -450,7 +735,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 @@ -476,10 +761,22 @@ Keep more files open than the system permits Supply object methods for filehandles +=item Filter::Simple + +Simplified source filtering + +=item Filter::Util::Call + +Perl Source Filter Utility Module + =item FindBin Locate directory of original perl script +=item GDBM_File + +Perl5 access to the gdbm library. + =item Getopt::Long Extended processing of command line options @@ -488,187 +785,511 @@ 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 IO +=item I18N::LangTags -Load various IO modules +Functions for dealing with RFC3066-style language tags -=item IPC::Open2 +=item I18N::LangTags::List -Open a process for both reading and writing +Tags and names for human languages -=item IPC::Open3 +=item I18N::Langinfo -Open a process for reading, writing, and error handling +Query locale information -=item Math::BigFloat +=item IO -Arbitrary length float math package +Load various IO modules -=item Math::BigInt +=item IO::Dir -Arbitrary size integer math package +Supply object methods for directory handles -=item Math::Complex +=item IO::File -Complex numbers and associated mathematical functions +Supply object methods for filehandles -=item Math::Trig +=item IO::Handle -Trigonometric functions +Supply object methods for I/O handles -=item NDBM_File +=item IO::Pipe -Tied access to ndbm files +Supply object methods for pipes -=item Net::Ping +=item IO::Poll -Check a remote host for reachability +Object interface to system poll call -=item Net::hostent +=item IO::Seekable -By-name interface to Perl's built-in gethost*() functions +Supply seek based methods for I/O objects -=item Net::netent +=item IO::Select -By-name interface to Perl's built-in getnet*() functions +OO interface to the select system call -=item Net::protoent +=item IO::Socket -By-name interface to Perl's built-in getproto*() functions +Object interface to socket communications -=item Net::servent +=item IO::Socket::INET -By-name interface to Perl's built-in getserv*() functions +Object interface for AF_INET domain sockets -=item O +=item IO::Socket::UNIX -Generic interface to Perl Compiler backends +Object interface for AF_UNIX domain sockets -=item ODBM_File +=item IPC::Open2 -Tied access to odbm files +Open a process for both reading and writing -=item Opcode +=item IPC::Open3 -Disable named opcodes when compiling perl code +Open a process for reading, writing, and error handling -=item Pod::Checker +=item IPC::SysV -Check pod documents for syntax errors +SysV IPC constants -=item Pod::Find +=item IPC::SysV::Msg -Find POD documents in directory trees +SysV Msg IPC object class -=item Pod::Html +=item IPC::SysV::Semaphore -Module to convert pod files to HTML +SysV Semaphore IPC object class -=item Pod::InputObjects +=item List::Util -Objects representing POD input paragraphs, commands, etc. +A selection of general-utility list subroutines -=item Pod::Man +=item Locale::Constants -Convert POD data to formatted *roff input +Constants for Locale codes -=item Pod::ParseUtils +=item Locale::Country -Helpers for POD parsing and conversion +ISO codes for country identification (ISO 3166) -=item Pod::Parser +=item Locale::Currency -Base class for creating POD filters and translators +ISO three letter codes for currency identification (ISO 4217) -=item Pod::Plainer +=item Locale::Language -Perl extension for converting Pod to old style Pod. +ISO two letter codes for language identification (ISO 639) -=item Pod::Select +=item Locale::Maketext -Extract selected sections of POD from input +Framework for localization -=item Pod::Text +=item Locale::Maketext::TPJ13 -Convert POD data to formatted ASCII text +Article about software localization -=item Pod::Text::Color +=item Locale::Script -Convert POD data to formatted color ASCII text +ISO codes for script identification (ISO 15924) -=item Pod::Text::Termcap +=item MIME::Base64 -Convert POD data to ASCII text with format escapes +Encoding and decoding of base64 strings -=item Pod::Usage +=item MIME::Base64::QuotedPrint -Print a usage message from embedded pod documentation +Encoding and decoding of quoted-printable strings -=item SDBM_File +=item Math::BigFloat -Tied access to sdbm files +Arbitrary size floating point math package -=item Safe +=item Math::BigInt -Compile and execute code in restricted compartments +Arbitrary size integer math package -=item Search::Dict +=item Math::BigInt::Calc -Search for key in dictionary file +Pure Perl module to support Math::BigInt -=item SelectSaver +=item Math::BigInt::CalcEmu -Save and restore selected file handle +Emulate low-level math with BigInt code -=item SelfLoader +=item Math::BigRat -Load functions only on demand +Arbitrarily big rational numbers -=item Shell +=item Math::Complex -Run shell commands transparently within perl +Complex numbers and associated mathematical functions -=item Socket +=item Math::Trig -Load the C socket.h defines and structure manipulators +Trigonometric functions -=item Symbol +=item Memoize -Manipulate Perl symbols and their names +Make functions faster by trading space for time -=item Term::ANSIColor +=item Memoize::AnyDBM_File -Color screen output using ANSI escape sequences +Glue to provide EXISTS for AnyDBM_File for Storable use -=item Term::Cap +=item Memoize::Expire -Perl termcap interface +Plug-in module for automatic expiration of memoized values -=item Term::Complete +=item Memoize::ExpireFile -Perl word completion module +Test for Memoize expiration semantics -=item Term::ReadLine +=item Memoize::ExpireTest -Perl interface to various C packages. If +Test for Memoize expiration semantics -=item Test +=item Memoize::NDBM_File -Provides a simple framework for writing test scripts +Glue to provide EXISTS for NDBM_File for Storable use -=item Test::Harness +=item Memoize::SDBM_File -Run perl standard test scripts with statistics +Glue to provide EXISTS for SDBM_File for Storable use -=item Text::Abbrev +=item Memoize::Storable -Create an abbreviation table from a list +Store Memoized data in Storable database -=item Text::ParseWords +=item NDBM_File + +Tied access to ndbm files + +=item NEXT + +Provide a pseudo-class NEXT (et al) 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 + +=item Net::protoent + +By-name interface to Perl's built-in getproto*() functions + +=item Net::servent + +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 + +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 PerlIO::encoding + +Encoding layer + +=item PerlIO::scalar + +In-memory IO, scalar IO + +=item PerlIO::via + +Helper class for PerlIO layers implemented in perl + +=item PerlIO::via::QuotedPrint + +PerlIO layer for quoted-printable strings + +=item Pod::Checker + +Check pod documents for syntax errors + +=item Pod::Find + +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 + +=item Pod::InputObjects + +Objects representing POD input paragraphs, commands, etc. + +=item Pod::LaTeX + +Convert Pod data to formatted Latex + +=item Pod::Man + +Convert POD data to formatted *roff input + +=item Pod::ParseLink + +Parse an LEE formatting code in POD text + +=item Pod::ParseUtils + +Helpers for POD parsing and conversion + +=item Pod::Parser + +Base class for creating POD filters and translators + +=item Pod::Perldoc::ToChecker + +Let Perldoc check Pod for errors + +=item Pod::Perldoc::ToMan + +Let Perldoc render Pod as man pages + +=item Pod::Perldoc::ToNroff + +Let Perldoc convert Pod to nroff + +=item Pod::Perldoc::ToPod + +Let Perldoc render Pod as ... Pod! + +=item Pod::Perldoc::ToRtf + +Let Perldoc render Pod as RTF + +=item Pod::Perldoc::ToText + +Let Perldoc render Pod as plaintext + +=item Pod::Perldoc::ToTk + +Let Perldoc use Tk::Pod to render Pod + +=item Pod::Perldoc::ToXml + +Let Perldoc render Pod as XML + +=item Pod::PlainText + +Convert POD data to formatted ASCII text + +=item Pod::Plainer + +Perl extension for converting Pod to old style Pod. + +=item Pod::Select + +Extract selected sections of POD from input + +=item Pod::Text + +Convert POD data to formatted ASCII text + +=item Pod::Text::Color + +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 + +=item Pod::Usage + +Print a usage message from embedded pod documentation + +=item SDBM_File + +Tied access to sdbm files + +=item Safe + +Compile and execute code in restricted compartments + +=item Scalar::Util + +A selection of general-utility scalar subroutines + +=item Search::Dict + +Search for key in dictionary file + +=item SelectSaver + +Save and restore selected file handle + +=item SelfLoader + +Load functions only on demand + +=item Shell + +Run shell commands transparently within perl + +=item Socket + +Load the C socket.h defines and structure manipulators + +=item Storable + +Persistence for Perl data structures + +=item Switch + +A switch statement for Perl + +=item Symbol + +Manipulate Perl symbols and their names + +=item Sys::Hostname + +Try every conceivable way to get hostname + +=item Sys::Syslog + +Perl interface to the UNIX syslog(3) calls + +=item Term::ANSIColor + +Color screen output using ANSI escape sequences + +=item Term::Cap + +Perl termcap interface + +=item Term::Complete + +Perl word completion module + +=item Term::ReadLine + +Perl interface to various C packages. + +=item Test + +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 @@ -676,14 +1297,42 @@ 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 + +=item Thread::Semaphore + +Thread-safe semaphores + +=item Thread::Signal + +Start a thread which runs signal handlers reliably (for old code) + +=item Thread::Specific + +Thread-specific keys + =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 @@ -692,6 +1341,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 @@ -704,6 +1357,10 @@ Base class definitions for tied scalars Fixed-table-size, fixed-key-length hashing +=item Time::HiRes + +High resolution alarm, sleep, gettimeofday, interval timers + =item Time::Local Efficiently compute time from local and GMT time @@ -724,6 +1381,18 @@ Internal object used by Time::gmtime and Time::localtime Base class for ALL classes (blessed references) +=item Unicode::Collate + +Unicode Collation Algorithm + +=item Unicode::Normalize + +Unicode Normalization Forms + +=item Unicode::UCD + +Unicode character database + =item User::grent By-name interface to Perl's built-in getgr*() functions @@ -732,14 +1401,34 @@ 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 + +=item XS::APItest + +Test the perl C API + +=item XS::Typemap + +Module to test the XS typemaps distributed with perl + +=item XSLoader + +Dynamically load C libraries into Perl code + =back To find out I modules installed on your system, including those without documentation or outside the standard release, -jus tdo this: +just use the following command (under the default win32 shell, +double quotes should be used instead of single quotes). - % find `perl -e 'print "@INC"'` -name '*.pm' -print + % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \ + 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, + no_chdir => 1 }, @INC' +(The -T is here to prevent '.' from being listed in @INC.) They should all have their own documentation installed and accessible via your system man(1) command. If you do not have a B program, you can use the Perl B program instead, which @@ -748,11 +1437,16 @@ have a B program but it doesn't find your modules, you'll have to fix your manpath. See L for details. If you have no system B command, you might try the B program. +Note also that the command C gives you a (possibly +incomplete) list of the modules that have been further installed on +your system. (The perllocal.pod file is updated by the standard MakeMaker +install process.) + =head2 Extension Modules 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 @@ -760,7 +1454,7 @@ completely) due to their sizes, volatility, or simply lack of time for adequate testing and configuration across the multitude of platforms on which Perl was beta-tested. You are encouraged to look for them on CPAN (described below), or using web search engines -like Alta Vista or Deja News. +like Alta Vista or Google. =head1 CPAN @@ -768,8 +1462,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 @@ -778,243 +1471,788 @@ modules are: =over =item * + Language Extensions and Documentation Tools =item * + Development Support =item * + Operating System Interfaces =item * + Networking, Device Control (modems) and InterProcess Communication =item * + Data Types and Data Type Utilities =item * + Database Interfaces =item * + User Interfaces =item * + Interfaces to / Emulations of Other Programming Languages =item * + File Names, File Systems and File Locking (see also File Handles) =item * + String Processing, Language Text Processing, Parsing, and Searching =item * + Option, Argument, Parameter, and Configuration File Processing =item * + Internationalization and Locale =item * + Authentication, Security, and Encryption =item * + World Wide Web, HTML, HTTP, CGI, MIME =item * + Server and Daemon Utilities =item * + Archiving and Compression =item * + Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing =item * + Mail and Usenet News =item * + Control Flow Utilities (callbacks and exceptions etc) =item * + File Handle and Input/Output Stream Utilities =item * + Miscellaneous Modules =back -Registered CPAN sites as of this writing include the following. -You should try to choose one close to you: +The list of the registered CPAN sites as of this writing follows. +Please note that the sorting order is alphabetical on fields: -=over +Continent + | + |-->Country + | + |-->[state/province] + | + |-->ftp + | + |-->[http] + +and thus the North American servers happen to be listed between the +European and the South American sites. + +You should try to choose one close to you. + +=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 + +=item South Africa + + http://ftp.rucus.ru.ac.za/pub/perl/CPAN/ + ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/ + ftp://ftp.is.co.za/programming/perl/CPAN/ + ftp://ftp.saix.net/pub/CPAN/ + ftp://ftp.sun.ac.za/CPAN/CPAN/ =back +=head2 Asia + +=over 4 + +=item China + + http://cpan.linuxforum.net/ + http://cpan.shellhung.org/ + ftp://ftp.shellhung.org/pub/CPAN + ftp://mirrors.hknet.com/CPAN + +=item Indonesia + + http://mirrors.tf.itb.ac.id/cpan/ + http://cpan.cbn.net.id/ + ftp://ftp.cbn.net.id/mirror/CPAN + +=item Israel + + 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/ + +=item Japan + + ftp://ftp.u-aizu.ac.jp/pub/CPAN + ftp://ftp.kddlabs.co.jp/CPAN/ + ftp://ftp.ayamura.org/pub/CPAN/ + ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/ + http://ftp.cpan.jp/ + ftp://ftp.cpan.jp/CPAN/ + ftp://ftp.dti.ad.jp/pub/lang/CPAN/ + ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ + +=item Malaysia + + http://cpan.MyBSD.org.my + http://mirror.leafbug.org/pub/CPAN + http://ossig.mncc.com.my/mirror/pub/CPAN + +=item Russian Federation + + http://cpan.tomsk.ru + ftp://cpan.tomsk.ru/ + +=item Saudi Arabia + + ftp://ftp.isu.net.sa/pub/CPAN/ + +=item Singapore + + http://CPAN.en.com.sg/ + ftp://cpan.en.com.sg/ + http://mirror.averse.net/pub/CPAN + ftp://mirror.averse.net/pub/CPAN + http://cpan.oss.eznetsols.org + ftp://ftp.oss.eznetsols.org/cpan + +=item South Korea + + http://CPAN.bora.net/ + ftp://ftp.bora.net/pub/CPAN/ + http://mirror.kr.FreeBSD.org/CPAN + ftp://ftp.kr.FreeBSD.org/pub/CPAN + +=item Taiwan + + ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN + http://cpan.cdpa.nsysu.edu.tw/ + ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN + http://ftp.isu.edu.tw/pub/CPAN + ftp://ftp.isu.edu.tw/pub/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.loxinfo.co.th/pub/cpan/ + ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/ + +=back + +=head2 Central America + +=over 4 + +=item Costa Rica + + http://ftp.ucr.ac.cr/Unix/CPAN/ + ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/ + +=back + +=head2 Europe + +=over 4 + +=item Austria + + http://cpan.inode.at/ + ftp://cpan.inode.at + 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.cpan.skynet.be/pub/CPAN + ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/ + +=item Bosnia and Herzegovina + + http://cpan.blic.net/ + +=item Bulgaria + + http://cpan.online.bg + ftp://cpan.online.bg/cpan + http://cpan.zadnik.org + ftp://ftp.zadnik.org/mirrors/CPAN/ + http://cpan.lirex.net/ + ftp://ftp.lirex.net/pub/mirrors/CPAN + +=item Croatia + + http://ftp.linux.hr/pub/CPAN/ + ftp://ftp.linux.hr/pub/CPAN/ + +=item Czech Republic + + 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://cpan.cybercity.dk + 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://mirror.eunet.fi/CPAN + +=item France + + http://www.enstimac.fr/Perl/CPAN + http://ftp.u-paris10.fr/perl/CPAN + ftp://ftp.u-paris10.fr/perl/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://mir2.ovh.net/ftp.cpan.org + ftp://mir1.ovh.net/ftp.cpan.org + http://ftp.crihan.fr/mirrors/ftp.cpan.org/ + ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/ + http://ftp.u-strasbg.fr/CPAN + ftp://ftp.u-strasbg.fr/CPAN + ftp://cpan.cict.fr/pub/CPAN/ + ftp://ftp.uvsq.fr/pub/perl/CPAN/ + +=item Germany + + ftp://ftp.rub.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 + 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 + ftp://ftp.forthnet.gr/pub/languages/perl/CPAN + ftp://ftp.ntua.gr/pub/lang/perl/ + +=item Hungary + + 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://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN + ftp://ftp.heanet.ie/mirrors/ftp.perl.org/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/ + http://cpan.flashnet.it/ + 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://mirror.vuurwerk.nl/pub/CPAN/ + ftp://ftp.cpan.nl/pub/CPAN/ + http://ftp.easynet.nl/mirror/CPAN + ftp://ftp.easynet.nl/mirror/CPAN + http://archive.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.mega.net.pl/CPAN + 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.nfsi.pt/pub/CPAN + http://ftp.linux.pt/pub/mirrors/CPAN + ftp://ftp.linux.pt/pub/mirrors/CPAN + http://cpan.ip.pt/ + ftp://cpan.ip.pt/pub/cpan/ + http://cpan.telepac.pt/ + ftp://ftp.telepac.pt/pub/cpan/ + +=item Romania + + ftp://ftp.bio-net.ro/pub/CPAN + ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/ + ftp://ftp.lug.ro/CPAN + ftp://ftp.roedu.net/pub/CPAN/ + ftp://ftp.dntis.ro/pub/cpan/ + ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/ + http://cpan.ambra.ro/ + ftp://ftp.ambra.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/ + ftp://ftp.corbina.ru/pub/CPAN/ + http://cpan.sai.msu.ru/ + ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ + +=item Slovakia + + 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.ri.telefonica-data.net/CPAN + ftp://ftp.etse.urv.es/pub/perl/ + +=item Sweden + + http://ftp.du.se/CPAN/ + ftp://ftp.du.se/pub/CPAN/ + http://mirror.dataphone.se/CPAN + ftp://mirror.dataphone.se/pub/CPAN + ftp://ftp.sunet.se/pub/lang/perl/CPAN/ + +=item Switzerland + + http://cpan.mirror.solnet.ch/ + ftp://ftp.solnet.ch/mirror/CPAN/ + ftp://ftp.danyk.ch/CPAN/ + ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ + +=item Turkey + + http://ftp.ulak.net.tr/perl/CPAN/ + ftp://ftp.ulak.net.tr/perl/CPAN + 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/ + http://no-more.kiev.ua/CPAN/ + ftp://no-more.kiev.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.mirror.anlx.net/ + ftp://ftp.mirror.anlx.net/CPAN/ + http://cpan.etla.org/ + ftp://cpan.etla.org/pub/CPAN + ftp://ftp.demon.co.uk/pub/CPAN/ + http://cpan.m.flirble.org/ + ftp://ftp.flirble.org/pub/languages/perl/CPAN/ + ftp://ftp.plig.org/pub/CPAN/ + http://cpan.hambule.co.uk/ + 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://cpan.sunsite.ualberta.ca/ + ftp://cpan.sunsite.ualberta.ca/pub/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.nrc.ca/pub/CPAN/ + +=back + +=item Mexico + + http://cpan.azc.uam.mx + ftp://cpan.azc.uam.mx/mirrors/CPAN + http://www.cpan.unam.mx/ + ftp://ftp.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://cpan.develooper.com/ + http://www.cpan.org/ + ftp://cpan.valueclick.com/pub/CPAN/ + http://www.mednor.net/ftp/pub/mirrors/CPAN/ + ftp://ftp.mednor.net/pub/mirrors/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-sj.viaverio.com/ + ftp://cpan-sj.viaverio.com/pub/CPAN/ + http://cpan.digisle.net/ + ftp://cpan.digisle.net/pub/CPAN + http://www.perl.com/CPAN/ + http://www.uberlan.net/CPAN + +=item Colorado + + ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ + http://cpan.four10.com + +=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/ + http://cpan.mirrors.nks.net/ + +=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/ + http://fx.saintjoe.edu/pub/CPAN + ftp://ftp.saintjoe.edu/pub/CPAN + 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/ + http://slugsite.louisville.edu/cpan + ftp://slugsite.louisville.edu/CPAN + +=item Massachusetts + + http://mirrors.towardex.com/CPAN + ftp://mirrors.towardex.com/pub/CPAN + ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/ + +=item Michigan + + ftp://cpan.cse.msu.edu/ + http://cpan.calvin.edu/pub/CPAN + ftp://cpan.calvin.edu/pub/CPAN + +=item Nevada + + http://www.oss.redundant.com/pub/CPAN + ftp://www.oss.redundant.com/pub/CPAN + +=item New Jersey + + http://ftp.cpanel.net/pub/CPAN/ + ftp://ftp.cpanel.net/pub/CPAN/ + http://cpan.teleglobe.net/ + ftp://cpan.teleglobe.net/pub/CPAN + +=item New York + + http://cpan.belfry.net/ + http://cpan.erlbaum.net/ + ftp://cpan.erlbaum.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/ + +=item North Carolina + + http://www.ibiblio.org/pub/languages/perl/CPAN + ftp://ftp.ibiblio.org/pub/languages/perl/CPAN + ftp://ftp.duke.edu/pub/perl/ + ftp://ftp.ncsu.edu/pub/mirror/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/ + http://www.binarycode.org/cpan + ftp://mirror.telentente.com/pub/CPAN + http://mirrors.theonlinerecordstore.com/CPAN + +=item Utah + + ftp://mirror.xmission.com/CPAN/ + +=item Virginia + + http://cpan-du.viaverio.com/ + ftp://cpan-du.viaverio.com/pub/CPAN/ + 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://noc.cvaix.com/mirrors/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/ + http://mirror.aphix.com/CPAN + ftp://mirror.aphix.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/ + http://cpan.mirrors.ilisys.com.au + +=item New Zealand + + ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ + +=item United States + + http://aniani.ifa.hawaii.edu/CPAN/ + ftp://aniani.ifa.hawaii.edu/CPAN/ + +=back + +=head2 South America + +=over 4 + +=item Argentina + + ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/ + http://www.linux.org.ar/mirrors/cpan + ftp://ftp.linux.org.ar/mirrors/cpan + +=item Brazil + + ftp://cpan.pop-mg.com.br/pub/CPAN/ + ftp://ftp.matrix.com.br/pub/perl/CPAN/ + http://cpan.hostsul.com.br/ + ftp://cpan.hostsul.com.br/ + +=item Chile + + http://cpan.netglobalis.net/ + ftp://cpan.netglobalis.net/pub/CPAN/ + +=back + +=head2 RSYNC Mirrors + + www.linux.org.ar::cpan + theoryx5.uwinnipeg.ca::CPAN + ftp.shellhung.org::CPAN + rsync.nic.funet.fi::CPAN + ftp.u-paris10.fr::CPAN + mir1.ovh.net::CPAN + rsync://ftp.crihan.fr::CPAN + ftp.gwdg.de::FTP/languages/perl/CPAN/ + ftp.leo.org::CPAN + ftp.cbn.net.id::CPAN + rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN + ftp.iglu.org.il::CPAN + gusp.dyndns.org::cpan + ftp.kddlabs.co.jp::cpan + ftp.ayamura.org::pub/CPAN/ + mirror.leafbug.org::CPAN + rsync.en.com.sg::CPAN + mirror.averse.net::cpan + rsync.oss.eznetsols.org + ftp.kr.FreeBSD.org::CPAN + ftp.solnet.ch::CPAN + cpan.cdpa.nsysu.edu.tw::CPAN + cpan.teleglobe.net::CPAN + rsync://rsync.mirror.anlx.net::CPAN + ftp.sedl.org::cpan + ibiblio.org::CPAN + cpan-du.viaverio.com::CPAN + aniani.ifa.hawaii.edu::CPAN + archive.progeny.com::CPAN + rsync://slugsite.louisville.edu::CPAN + mirror.aphix.com::CPAN + cpan.teleglobe.net::CPAN + ftp.lug.udel.edu::cpan + mirrors.kernel.org::mirrors/CPAN + mirrors.phenominet.com::CPAN + cpan.pair.com::CPAN + cpan-sj.viaverio.com::CPAN + mirror.csit.fsu.edu::CPAN + csociety-ftp.ecn.purdue.edu::CPAN + For an up-to-date listing of CPAN sites, -see http://www.perl.com/perl/CPAN/SITES or ftp://www.perl.com/CPAN/SITES . +see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES . =head1 Modules: Creation, Use, and Abuse @@ -1042,7 +2280,9 @@ the AUTOLOAD mechanism. =over 4 -=item Do similar modules already exist in some form? +=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 @@ -1056,7 +2296,9 @@ 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. +=item * + +Try to design the new module to be easy to extend and reuse. Try to C (or C). Remember that you can add C to individual blocks @@ -1121,7 +2363,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. @@ -1153,7 +2397,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! @@ -1177,7 +2423,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 @@ -1201,11 +2449,19 @@ If adding a new module to a set, follow the original author's standards for naming modules and the interface to methods in those modules. +If developing modules for private internal or project specific use, +that will never be released to the public, then you should ensure +that their names will not clash with any future public module. You +can do this either by using the reserved Local::* category or by +using a category name that includes an underscore like Foo_Corp::*. + 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 @@ -1224,7 +2480,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 @@ -1234,24 +2492,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 @@ -1262,15 +2527,18 @@ 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 a declaration of how others may copy/use/modify your work. -Perl, for example, is supplied with two types of licence: The GNU -GPL and The Artistic Licence (see the files README, Copying, and -Artistic). Larry has good reasons for NOT just using the GNU GPL. +Perl, for example, is supplied with two types of licence: The GNU GPL +and The Artistic Licence (see the files README, Copying, and Artistic, +or L and L). Larry has good reasons for NOT +just using the GNU GPL. My personal recommendation, out of respect for Larry, Perl, and the Perl community at large is to state something simply like: @@ -1283,7 +2551,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 @@ -1297,7 +2567,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 @@ -1320,8 +2592,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: @@ -1336,7 +2608,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 @@ -1350,26 +2624,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: @@ -1377,15 +2659,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 @@ -1400,18 +2686,28 @@ Don't delete the original .pl file till the new .pm one works! =over 4 -=item Complete applications rarely belong in the Perl Module Library. +=item * + +Complete applications rarely belong in the Perl Module Library. + +=item * -=item Many applications contain some Perl code that could be reused. +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 Break-out the reusable code into one or more separate module files. +=item * + +Break-out the reusable code into one or more separate module files. + +=item * + +Take the opportunity to reconsider and redesign the interfaces. -=item Take the opportunity to reconsider and redesign the interfaces. +=item * -=item In some cases the 'application' can then be reduced to a small +In some cases the 'application' can then be reduced to a small fragment of code built on top of the reusable modules. In these cases the application could invoked as: