X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.pod;h=eebeedbd0f327de6cba4a5043f5d4dbda404aec8;hb=024963f8e0e4bfbd631d6878a69f86cabc760a32;hp=1810e0003ab6c315d33251508bf1331d0d00fedd;hpb=7ea3cd407b6ec2a3e424bdfbc486b6e01d6d28bd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.pod b/pod/perlmodlib.pod index 1810e00..eebeedb 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 @@ -60,7 +61,19 @@ Postpone load of modules until a function is used =item base -Establish IS-A relationship with base class at compile time +Establish an ISA 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 +85,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 +93,19 @@ 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 encoding::warnings + +Warn on implicit encoding conversions + +=item feature + +Enable new syntactic features =item fields @@ -90,21 +115,33 @@ 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 -Request less of something from the compiler +Request less of something + +=item lib + +Manipulate @INC at compile time =item locale Use and avoid POSIX locales for built-in operations +=item mro + +Method Resolution Order + =item open -Set default disciplines for input and output +Set default PerlIO layers for input and output =item ops @@ -112,11 +149,7 @@ Restrict unsafe operations when compiling =item overload -Package for overloading perl operations - -=item perlio - -Configure C level IO +Package for overloading Perl operations =item re @@ -126,6 +159,10 @@ Alter regular expression behaviour Enable simple signal handling +=item sort + +Control sort() behaviour + =item strict Restrict unsafe constructs @@ -134,14 +171,30 @@ Restrict unsafe constructs Predeclare sub names +=item threads + +Perl interpreter-based threads + +=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 @@ -158,47 +211,47 @@ 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 AutoLoader - -Load subroutines only on demand - -=item AutoSplit +=item Archive::Extract -Split a package for autoloading +A generic archive extracting mechanism -=item B +=item Archive::Tar -The Perl Compiler +Module for manipulations of tar archives -=item B::Asmdata +=item Archive::Tar::File -Autogenerated data about Perl ops, used to generate bytecode +A subclass for in-memory extracted file from Archive::Tar -=item B::Assembler +=item Attribute::Handlers -Assemble Perl bytecode +Simpler definition of attribute handlers -=item B::Bblock +=item AutoLoader -Walk basic blocks +Load subroutines only on demand -=item B::Bytecode +=item AutoSplit -Perl compiler's bytecode backend +Split a package for autoloading -=item B::C +=item B -Perl compiler's C backend +The Perl Compiler -=item B::CC +=item B::Concise -Perl compiler's optimized C translation backend +Walk Perl syntax tree, printing concise info about ops =item B::Debug @@ -208,10 +261,6 @@ Walk Perl syntax tree, printing debug info about ops Perl compiler backend to produce perl code -=item B::Disassembler - -Disassemble Perl bytecode - =item B::Lint Perl lint @@ -220,14 +269,6 @@ Perl lint Show lexical variables used in functions or files -=item B::Stackobj - -Helper module for CC backend - -=item B::Stash - -Show what stashes are loaded - =item B::Terse Walk Perl syntax tree, printing terse info about ops @@ -240,10 +281,6 @@ Generates cross reference reports for Perl programs Benchmark running times of Perl code -=item ByteLoader - -Load byte compiled perl code - =item CGI Simple Common Gateway Interface Class @@ -276,42 +313,162 @@ Simple Interface to Server Push Backward compatibility module for defunct CGI::Switch +=item CGI::Util + +Internal utilities used by CGI module + +=item CORE + +Pseudo-namespace for Perl's core routines + =item CPAN Query, download and build perl modules from CPAN sites +=item CPAN::API::HOWTO + +A recipe book for programming with CPAN.pm + =item CPAN::FirstTime Utility for CPAN::Config file Initialization +=item CPAN::Kwalify + +Interface between CPAN.pm and Kwalify.pm + =item CPAN::Nox Wrapper around CPAN.pm without using any XS module +=item CPAN::Version + +Utility functions to compare CPAN versions + +=item CPANPLUS + +API & CLI access to the CPAN mirrors + +=item CPANPLUS::Dist::Base + +Base class for custom distribution classes + +=item CPANPLUS::Dist::Sample + +Sample code to create your own Dist::* plugin + +=item CPANPLUS::Shell::Classic + +CPAN.pm emulation for CPANPLUS + +=item CPANPLUS::Shell::Default::Plugins::HOWTO + +Documentation on how to write your own plugins + =item Carp Warn of errors (from perspective of caller) +=item Carp::Heavy + +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 Compress::Raw::Zlib + +Low-Level Interface to zlib compression library + +=item Compress::Zlib + +Interface to zlib compression library + +=item Config + +Access Perl configuration information + =item Cwd Get pathname of current working directory =item DB -Programmatic interface to the Perl debugging API (draft, subject to +Programmatic interface to the Perl debugging API + +=item DBM_Filter + +Filter DBM keys/values + +=item DBM_Filter::compress + +Filter for DBM_Filter + +=item DBM_Filter::encode + +Filter for DBM_Filter + +=item DBM_Filter::int32 + +Filter for DBM_Filter + +=item DBM_Filter::null + +Filter for DBM_Filter + +=item DBM_Filter::utf8 + +Filter for DBM_Filter =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::InnerPackage + +Find all the inner packages of a package + +=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::SHA + +Perl extension for SHA-1/224/256/384/512 + +=item Digest::base + +Digest base class + +=item Digest::file + +Calculate digests of files + =item DirHandle Supply object methods for directory handles @@ -320,10 +477,110 @@ 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::GSM0338 + +ESTI GSM 03.38 Encoding + +=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::MIME::Name + +Internally used by Encode + +=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 @@ -332,6 +589,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 @@ -340,10 +601,38 @@ Implements default import method for modules Exporter guts +=item ExtUtils::CBuilder + +Compile and link C code for Perl modules + +=item ExtUtils::CBuilder::Platform::Windows + +Builder class for Windows platforms + =item ExtUtils::Command 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::Constant::Base + +Base class for ExtUtils::Constant objects + +=item ExtUtils::Constant::Utils + +Helper functions for ExtUtils::Constant + +=item ExtUtils::Constant::XS + +Base class for ExtUtils::Constant objects + =item ExtUtils::Embed Utilities for embedding Perl in C/C++ applications @@ -360,14 +649,50 @@ 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_AIX + +AIX specific subclass of ExtUtils::MM_Unix + +=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 + +Once produced Makefiles for MacOS Classic + +=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_QNX + +QNX specific subclass of ExtUtils::MM_Unix + +=item ExtUtils::MM_UWIN + +U/WIN specific subclass of ExtUtils::MM_Unix + =item ExtUtils::MM_Unix Methods used by ExtUtils::MakeMaker @@ -376,13 +701,45 @@ Methods used by ExtUtils::MakeMaker Methods to override UN*X behaviour in ExtUtils::MakeMaker +=item ExtUtils::MM_VOS + +VOS specific subclass of ExtUtils::MM_Unix + =item ExtUtils::MM_Win32 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::Config + +Wrapper around Config.pm + +=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 @@ -400,6 +757,10 @@ Write linker options files for dynamic extension Manage .packlist files +=item ExtUtils::ParseXS + +Converts Perl XS code into C code + =item ExtUtils::testlib Add blib/* directories to @INC @@ -414,7 +775,7 @@ Load the C Fcntl.h defines =item File::Basename -Split a pathname into pieces +Parse file paths into directory, filename and suffix. =item File::CheckTree @@ -432,9 +793,21 @@ Copy files or filehandles DOS like globbing and then some +=item File::Fetch + +A generic file fetching mechanism + =item File::Find -Traverse a file tree +Traverse a directory tree. + +=item File::Glob + +Perl extension for BSD glob routine + +=item File::GlobMapper + +Extend File Glob to Allow Input and Output Files =item File::Path @@ -444,6 +817,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 +831,7 @@ Portably perform operations on file names =item File::Spec::Mac -File::Spec for MacOS +File::Spec for Mac OS (Classic) =item File::Spec::OS2 @@ -462,7 +839,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 @@ -492,10 +869,18 @@ Supply object methods for filehandles 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 @@ -504,51 +889,459 @@ Extended processing of command line options Process single-character switches with switch clustering +=item Hash::Util + +A selection of general-utility hash subroutines + +=item Hash::Util::FieldHash + +Support for Inside-Out Classes + =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::Detect -Open a process for both reading and writing +Detect the user's language preferences -=item IPC::Open3 +=item I18N::LangTags::List -Open a process for reading, writing, and error handling +Tags and names for human languages -=item Math::BigFloat +=item I18N::Langinfo -Arbitrary length float math package +Query locale information -=item Math::BigInt +=item IO -Arbitrary size integer math package +Load various IO modules -=item Math::Complex +=item IO::Compress::Base -Complex numbers and associated mathematical functions +Base Class for IO::Compress modules -=item Math::Trig +=item IO::Compress::Deflate -Trigonometric functions +Write RFC 1950 files/buffers -=item NDBM_File +=item IO::Compress::Gzip -Tied access to ndbm files +Write RFC 1952 files/buffers -=item Net::Ping +=item IO::Compress::RawDeflate -Check a remote host for reachability +Write RFC 1951 files/buffers -=item Net::hostent +=item IO::Compress::Zip -By-name interface to Perl's built-in gethost*() functions +Write zip files/buffers -=item Net::netent +=item IO::Dir + +Supply object methods for directory handles + +=item IO::File + +Supply object methods for filehandles + +=item IO::Handle + +Supply object methods for I/O handles + +=item IO::Pipe + +Supply object methods for pipes + +=item IO::Poll + +Object interface to system poll call + +=item IO::Seekable + +Supply seek based methods for I/O objects + +=item IO::Select + +OO interface to the select system call + +=item IO::Socket + +Object interface to socket communications + +=item IO::Socket::INET + +Object interface for AF_INET domain sockets + +=item IO::Socket::UNIX + +Object interface for AF_UNIX domain sockets + +=item IO::Uncompress::AnyInflate + +Uncompress zlib-based (zip, gzip) file/buffer + +=item IO::Uncompress::AnyUncompress + +Uncompress gzip, zip, bzip2 or lzop file/buffer + +=item IO::Uncompress::Base + +Base Class for IO::Uncompress modules + +=item IO::Uncompress::Gunzip + +Read RFC 1952 files/buffers + +=item IO::Uncompress::Inflate + +Read RFC 1950 files/buffers + +=item IO::Uncompress::RawInflate + +Read RFC 1951 files/buffers + +=item IO::Uncompress::Unzip + +Read zip files/buffers + +=item IO::Zlib + +IO:: style interface to L + +=item IPC::Cmd + +Finding and running system commands made easy + +=item IPC::Open2 + +Open a process for both reading and writing + +=item IPC::Open3 + +Open a process for reading, writing, and error handling + +=item IPC::SysV + +SysV IPC constants + +=item IPC::SysV::Msg + +SysV Msg IPC object class + +=item IPC::SysV::Semaphore + +SysV Semaphore IPC object class + +=item List::Util + +A selection of general-utility list subroutines + +=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::Simple + +Simple interface to Locale::Maketext::Lexicon + +=item Locale::Maketext::TPJ13 + +Article about software localization + +=item Locale::Script + +ISO codes for script identification (ISO 15924) + +=item Log::Message + +A generic message storing mechanism; + +=item Log::Message::Config + +Configuration options for Log::Message + +=item Log::Message::Handlers + +Message handlers for Log::Message + +=item Log::Message::Item + +Message objects for Log::Message + +=item MIME::Base64 + +Encoding and decoding of base64 strings + +=item MIME::Base64::QuotedPrint + +Encoding and decoding of quoted-printable strings + +=item Math::BigFloat + +Arbitrary size floating point math package + +=item Math::BigInt + +Arbitrary size integer/float math package + +=item Math::BigInt::Calc + +Pure Perl module to support Math::BigInt + +=item Math::BigInt::CalcEmu + +Emulate low-level math with BigInt code + +=item Math::BigInt::FastCalc + +Math::BigInt::Calc with some XS for more speed + +=item Math::BigRat + +Arbitrary big rational numbers + +=item Math::Complex + +Complex numbers and associated mathematical functions + +=item Math::Trig + +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 Module::Build + +Build and install Perl modules + +=item Module::Build::API + +API Reference for Module Authors + +=item Module::Build::Authoring + +Authoring Module::Build modules + +=item Module::Build::Base + +Default methods for Module::Build + +=item Module::Build::Compat + +Compatibility with ExtUtils::MakeMaker + +=item Module::Build::ConfigData + +Configuration for Module::Build + +=item Module::Build::Cookbook + +Examples of Module::Build Usage + +=item Module::Build::ModuleInfo + +Gather package and POD information from a perl module files + +=item Module::Build::Notes + +Configuration for $module_name + +=item Module::Build::PPMMaker + +Perl Package Manager file creation + +=item Module::Build::Platform::Amiga + +Builder class for Amiga platforms + +=item Module::Build::Platform::Default + +Stub class for unknown platforms + +=item Module::Build::Platform::EBCDIC + +Builder class for EBCDIC platforms + +=item Module::Build::Platform::MPEiX + +Builder class for MPEiX platforms + +=item Module::Build::Platform::MacOS + +Builder class for MacOS platforms + +=item Module::Build::Platform::RiscOS + +Builder class for RiscOS platforms + +=item Module::Build::Platform::Unix + +Builder class for Unix platforms + +=item Module::Build::Platform::VMS + +Builder class for VMS platforms + +=item Module::Build::Platform::VOS + +Builder class for VOS platforms + +=item Module::Build::Platform::Windows + +Builder class for Windows platforms + +=item Module::Build::Platform::aix + +Builder class for AIX platform + +=item Module::Build::Platform::cygwin + +Builder class for Cygwin platform + +=item Module::Build::Platform::darwin + +Builder class for Mac OS X platform + +=item Module::Build::Platform::os2 + +Builder class for OS/2 platform + +=item Module::Build::YAML + +Provides just enough YAML support so that Module::Build works even if YAML.pm is not installed + +=item Module::CoreList + +What modules shipped with versions of perl + +=item Module::Load + +Runtime require of both modules and files + +=item Module::Load::Conditional + +Looking up module information / loading at runtime + +=item Module::Loaded + +Mark modules as loaded or unloaded + +=item Module::Pluggable + +Automatically give your module the ability to have plugins + +=item Module::Pluggable::Object + +Automatically give your module the ability to have plugins + +=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 @@ -572,14 +1365,54 @@ Tied access to odbm files Disable named opcodes when compiling perl code +=item POSIX + +Perl interface to IEEE Std 1003.1 + +=item Package::Constants + +List all constants declared in a package + +=item Params::Check + +A generic input parsing/checking mechanism. + +=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::Escapes + +For resolving Pod EE...E sequences + =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 @@ -596,6 +1429,10 @@ Convert Pod data to formatted Latex 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 @@ -604,6 +1441,42 @@ Helpers for POD parsing and conversion 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. @@ -612,6 +1485,90 @@ Perl extension for converting Pod to old style Pod. Extract selected sections of POD from input +=item Pod::Simple + +Framework for parsing Pod + +=item Pod::Simple::Checker + +Check the Pod syntax of a document + +=item Pod::Simple::Debug + +Put Pod::Simple into trace/debug mode + +=item Pod::Simple::DumpAsText + +Dump Pod-parsing events as text + +=item Pod::Simple::DumpAsXML + +Turn Pod into XML + +=item Pod::Simple::HTML + +Convert Pod to HTML + +=item Pod::Simple::HTMLBatch + +Convert several Pod files to several HTML files + +=item Pod::Simple::LinkSection + +Represent "section" attributes of L codes + +=item Pod::Simple::Methody + +Turn Pod::Simple events into method calls + +=item Pod::Simple::PullParser + +A pull-parser interface to parsing Pod + +=item Pod::Simple::PullParserEndToken + +End-tokens from Pod::Simple::PullParser + +=item Pod::Simple::PullParserStartToken + +Start-tokens from Pod::Simple::PullParser + +=item Pod::Simple::PullParserTextToken + +Text-tokens from Pod::Simple::PullParser + +=item Pod::Simple::PullParserToken + +Tokens from Pod::Simple::PullParser + +=item Pod::Simple::RTF + +Format Pod as RTF + +=item Pod::Simple::Search + +Find POD documents in directory trees + +=item Pod::Simple::SimpleTree + +Parse Pod into a simple parse tree + +=item Pod::Simple::Subclassing + +Write a formatter as a Pod::Simple subclass + +=item Pod::Simple::Text + +Format Pod as plaintext + +=item Pod::Simple::TextContent + +Get the text content of Pod + +=item Pod::Simple::XMLOutStream + +Turn Pod into XML + =item Pod::Text Convert POD data to formatted ASCII text @@ -620,6 +1577,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 @@ -636,6 +1597,10 @@ Tied access to sdbm files 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 @@ -658,12 +1623,28 @@ 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 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 Sys::Syslog::win32::Win32 + +Win32 support for Sys::Syslog + =item Term::ANSIColor Color screen output using ANSI escape sequences @@ -678,36 +1659,120 @@ Perl word completion module =item Term::ReadLine -Perl interface to various C packages. If +Perl interface to various C packages. + +=item Term::UI + +Term::ReadLine UI made easy =item Test Provides a simple framework for writing test scripts +=item Test::Builder + +Backend for building test libraries + +=item Test::Builder::Module + +Base class for test modules + +=item Test::Builder::Tester + +Test testsuites that have been built with + +=item Test::Builder::Tester::Color + +Turn on colour in Test::Builder::Tester + =item Test::Harness -Run perl standard test scripts with statistics +Run Perl standard test scripts with statistics + +=item Test::Harness::Assert + +Simple assert + +=item Test::Harness::Iterator + +Internal Test::Harness Iterator + +=item Test::Harness::Point + +Object for tracking a single test point + +=item Test::Harness::Results + +Object for tracking results from a single test file + +=item Test::Harness::Straps + +Detailed analysis of test results + +=item Test::Harness::TAP + +Documentation for the TAP format + +=item Test::Harness::Util + +Utility functions for Test::Harness::* + +=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 =item Text::Soundex -Implementation of the Soundex Algorithm as Described by Knuth +Implementation of the soundex algorithm. + +=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 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 +1781,14 @@ Base class definitions for tied handles Base class definitions for tied hashes +=item Tie::Hash::NamedCapture + +Named regexp capture buffers + +=item Tie::Memoize + +Add data to hash when needed + =item Tie::RefHash Use references as hash keys @@ -728,10 +1801,22 @@ 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 +=item Time::Piece + +Object Oriented time objects + +=item Time::Piece::Seconds + +A simple API to convert seconds to other date values + =item Time::gmtime By-name interface to Perl's built-in gmtime() function @@ -748,6 +1833,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 @@ -756,14 +1853,42 @@ 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 Win32API::File + +Low-level access to Win32 system API calls for files/dirs. + +=item Win32CORE + +Win32 CORE function stubs + +=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, -just do 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 @@ -772,11 +1897,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 @@ -784,7 +1914,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 @@ -792,8 +1922,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 @@ -802,243 +1931,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 + +=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 -=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/ + 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 @@ -1066,7 +2740,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 @@ -1080,7 +2756,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 @@ -1126,8 +2804,8 @@ the module after __END__ either using AutoSplit or by saying: 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;> ? +does your application still work if you change: C<< $obj = YOURCLASS->new(); >> +into: C<< $obj = SUBCLASS->new(); >> ? Avoid keeping any state information in your packages. It makes it difficult for multiple other packages to use yours. Keep state @@ -1145,7 +2823,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. @@ -1177,7 +2857,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! @@ -1201,7 +2883,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 @@ -1235,7 +2919,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 @@ -1254,7 +2940,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 @@ -1264,24 +2952,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 @@ -1292,15 +2987,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: @@ -1313,7 +3011,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 @@ -1327,7 +3027,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 @@ -1350,8 +3052,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: @@ -1366,7 +3068,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 @@ -1380,26 +3084,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: @@ -1407,15 +3119,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 @@ -1430,18 +3146,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 Many applications contain some Perl code that could be reused. +=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 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: