マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

perlmodlib (1)

名前

perlmodlib - constructing new Perl modules and finding existing ones

形式

Please see following description for synopsis

説明




Perl Programmers Reference Guide                    PERLMODLIB(1)



NAME
     perlmodlib - constructing new Perl modules and finding
     existing ones

THE PERL MODULE LIBRARY
     Many modules are included in the Perl distribution.  These
     are described below, and all end in .pm.  You may discover
     compiled library files (usually ending in .so) or small
     pieces of modules to be autoloaded (ending in .al); these
     were automatically generated by the installation process.
     You may also discover files in the library directory that
     end in either .pl or .ph.  These are old libraries supplied
     so that old programs that use them still run.  The .pl files
     will all eventually be converted into standard modules, and
     the .ph files made by h2ph will probably end up as extension
     modules made by h2xs.  (Some .ph values may already be
     available through the POSIX, Errno, or Fcntl modules.)  The
     pl2pm file in the distribution may help in your conversion,
     but it's just a mechanical process and therefore far from
     bulletproof.

  Pragmatic Modules
     They work somewhat like compiler directives (pragmata) in
     that they tend to affect the compilation of your program,
     and thus will usually work well only when used within a
     "use", or "no".  Most of these are lexically scoped, so an
     inner BLOCK may countermand them by saying:

         no integer;
         no strict 'refs';
         no warnings;

     which lasts until the end of that BLOCK.

     Some pragmas are lexically scoped--typically those that
     affect the $^H hints variable.  Others affect the current
     package instead, like "use vars" and "use subs", which allow
     you to predeclare a variables or subroutines within a
     particular file rather than just a block.  Such declarations
     are effective for the entire file for which they were
     declared.  You cannot rescind them with "no vars" or "no
     subs".

     The following pragmas are defined (and have their own
     documentation).

     attributes  Get/set subroutine or variable attributes

     autodie     Replace functions with ones that succeed or die
                 with lexical scope

     autodie::exception



perl v5.12.5         Last change: 2014-06-17                    1






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Exceptions from autodying functions.

     autodie::exception::system
                 Exceptions from autodying system().

     autodie::hints
                 Provide hints about user subroutines to autodie

     autouse     Postpone load of modules until a function is
                 used

     base        Establish an ISA relationship with base classes
                 at compile time

     bigint      Transparent BigInteger support for Perl

     bignum      Transparent BigNumber support for Perl

     bigrat      Transparent BigNumber/BigRational support for
                 Perl

     blib        Use MakeMaker's uninstalled version of a package

     bytes       Force byte semantics rather than character
                 semantics

     charnames   Define character names for "\N{named}" string
                 literal escapes

     constant    Declare constants

     deprecate   Perl pragma for deprecating the core version of
                 a module

     diagnostics Produce verbose warning diagnostics

     encoding    Allows you to write your script in non-ascii or
                 non-utf8

     encoding::warnings
                 Warn on implicit encoding conversions

     feature     Enable new features

     fields      Compile-time class fields

     filetest    Control the filetest permission operators

     if          "use" a Perl module if a condition holds

     inc::latest Use modules bundled in inc/ if they are newer
                 than installed ones



perl v5.12.5         Last change: 2014-06-17                    2






Perl Programmers Reference Guide                    PERLMODLIB(1)



     integer     Use integer arithmetic instead of floating point

     less        Request less of something

     lib         Manipulate @INC at compile time

     locale      Use and avoid POSIX locales for built-in
                 operations

     mro         Method Resolution Order

     open        Set default PerlIO layers for input and output

     ops         Restrict unsafe operations when compiling

     overload    Package for overloading Perl operations

     overloading Lexically control overloading

     parent      Establish an ISA relationship with base classes
                 at compile time

     re          Alter regular expression behaviour

     sigtrap     Enable simple signal handling

     sort        Control sort() behaviour

     strict      Restrict unsafe constructs

     subs        Predeclare sub names

     threads     Perl interpreter-based threads

     threads::shared
                 Perl extension for sharing data structures
                 between threads

     utf8        Enable/disable UTF-8 (or UTF-EBCDIC) in source
                 code

     vars        Predeclare global variable names (obsolete)

     version     Perl extension for Version Objects

     vmsish      Control VMS-specific language features

     warnings    Control optional warnings

     warnings::register
                 Warnings import function




perl v5.12.5         Last change: 2014-06-17                    3






Perl Programmers Reference Guide                    PERLMODLIB(1)



  Standard Modules
     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.

     AnyDBM_File Provide framework for multiple DBMs

     App::Cpan   Easily interact with CPAN from the command line

     App::Prove  Implements the "prove" command.

     App::Prove::State
                 State storage for the "prove" command.

     App::Prove::State::Result
                 Individual test suite results.

     App::Prove::State::Result::Test
                 Individual test results.

     Archive::Extract
                 A generic archive extracting mechanism

     Archive::Tar
                 Module for manipulations of tar archives

     Archive::Tar::File
                 A subclass for in-memory extracted file from
                 Archive::Tar

     Attribute::Handlers
                 Simpler definition of attribute handlers

     AutoLoader  Load subroutines only on demand

     AutoSplit   Split a package for autoloading

     B           The Perl Compiler Backend

     B::Concise  Walk Perl syntax tree, printing concise info
                 about ops

     B::Debug    Walk Perl syntax tree, printing debug info about
                 ops

     B::Deparse  Perl compiler backend to produce perl code




perl v5.12.5         Last change: 2014-06-17                    4






Perl Programmers Reference Guide                    PERLMODLIB(1)



     B::Lint     Perl lint

     B::Lint::Debug
                 Adds debugging stringification to B::

     B::Showlex  Show lexical variables used in functions or
                 files

     B::Terse    Walk Perl syntax tree, printing terse info about
                 ops

     B::Xref     Generates cross reference reports for Perl
                 programs

     Benchmark   Benchmark running times of Perl code

     CGI         Handle Common Gateway Interface requests and
                 responses

     CGI::Apache Backward compatibility module for CGI.pm

     CGI::Carp   CGI routines for writing to the HTTPD (or other)
                 error log

     CGI::Cookie Interface to HTTP Cookies

     CGI::Fast   CGI Interface for Fast CGI

     CGI::Pretty Module to produce nicely formatted HTML code

     CGI::Push   Simple Interface to Server Push

     CGI::Switch Backward compatibility module for defunct
                 CGI::Switch

     CGI::Util   Internal utilities used by CGI module

     CORE        Pseudo-namespace for Perl's core routines

     CPAN        Query, download and build perl modules from CPAN
                 sites

     CPAN::API::HOWTO
                 A recipe book for programming with CPAN.pm

     CPAN::Distroprefs
                 Read and match distroprefs

     CPAN::FirstTime
                 Utility for CPAN::Config file Initialization

     CPAN::Kwalify



perl v5.12.5         Last change: 2014-06-17                    5






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Interface between CPAN.pm and Kwalify.pm

     CPAN::Nox   Wrapper around CPAN.pm without using any XS
                 module

     CPAN::Version
                 Utility functions to compare CPAN versions

     CPANPLUS    API & CLI access to the CPAN mirrors

     CPANPLUS::Dist::Base
                 Base class for custom distribution classes

     CPANPLUS::Dist::Build
                 CPANPLUS plugin to install packages that use
                 Build.PL

     CPANPLUS::Dist::Build::Constants
                 Constants for CPANPLUS::Dist::Build

     CPANPLUS::Dist::Sample
                 Sample code to create your own Dist::* plugin

     CPANPLUS::Internals::Source::Memory
                 In memory implementation

     CPANPLUS::Internals::Source::SQLite
                 SQLite implementation

     CPANPLUS::Shell::Classic
                 CPAN.pm emulation for CPANPLUS

     CPANPLUS::Shell::Default::Plugins::HOWTO
                 Documentation on how to write your own plugins

     Carp        Warn of errors (from perspective of caller)

     Class::ISA  Report the search path for a class's ISA tree

     Class::Struct
                 Declare struct-like datatypes as Perl classes

     Compress::Raw::Bzip2
                 Low-Level Interface to bzip2 compression library

     Compress::Raw::Bzip2::FAQ
                 Frequently Asked Questions about
                 Compress::Raw::Bzip2

     Compress::Raw::Zlib
                 Low-Level Interface to zlib compression library




perl v5.12.5         Last change: 2014-06-17                    6






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Compress::Raw::Zlib::FAQ
                 Frequently Asked Questions about
                 Compress::Raw::Zlib

     Compress::Zlib
                 Interface to zlib compression library

     Config      Access Perl configuration information

     Cwd         Get pathname of current working directory

     DB          Programmatic interface to the Perl debugging API

     DBM_Filter  Filter DBM keys/values

     DBM_Filter::compress
                 Filter for DBM_Filter

     DBM_Filter::encode
                 Filter for DBM_Filter

     DBM_Filter::int32
                 Filter for DBM_Filter

     DBM_Filter::null
                 Filter for DBM_Filter

     DBM_Filter::utf8
                 Filter for DBM_Filter

     DB_File     Perl5 access to Berkeley DB version 1.x

     Data::Dumper
                 Stringified perl data structures, suitable for
                 both printing and "eval"

     Devel::DProf
                 A Perl code profiler

     Devel::InnerPackage
                 Find all the inner packages of a package

     Devel::PPPort
                 Perl/Pollution/Portability

     Devel::Peek A data debugging tool for the XS programmer

     Devel::SelfStubber
                 Generate stubs for a SelfLoading module

     Digest      Modules that calculate message digests




perl v5.12.5         Last change: 2014-06-17                    7






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Digest::MD5 Perl interface to the MD5 Algorithm

     Digest::SHA Perl extension for SHA-1/224/256/384/512

     Digest::base
                 Digest base class

     Digest::file
                 Calculate digests of files

     DirHandle   Supply object methods for directory handles

     Dumpvalue   Provides screen dump of Perl data.

     DynaLoader  Dynamically load C libraries into Perl code

     Encode      Character encodings

     Encode::Alias
                 Alias definitions to encodings

     Encode::Byte
                 Single Byte Encodings

     Encode::CJKConstants
                 Internally used by Encode::??::ISO_2022_*

     Encode::CN  China-based Chinese Encodings

     Encode::CN::HZ
                 Internally used by Encode::CN

     Encode::Config
                 Internally used by Encode

     Encode::EBCDIC
                 EBCDIC Encodings

     Encode::Encoder
                 Object Oriented Encoder

     Encode::Encoding
                 Encode Implementation Base Class

     Encode::GSM0338
                 ESTI GSM 03.38 Encoding

     Encode::Guess
                 Guesses encoding from data

     Encode::JP  Japanese Encodings




perl v5.12.5         Last change: 2014-06-17                    8






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Encode::JP::H2Z
                 Internally used by Encode::JP::2022_JP*

     Encode::JP::JIS7
                 Internally used by Encode::JP

     Encode::KR  Korean Encodings

     Encode::KR::2022_KR
                 Internally used by Encode::KR

     Encode::MIME::Header
                 MIME 'B' and 'Q' header encoding

     Encode::MIME::Name
                 Internally used by Encode

     Encode::PerlIO
                 A detailed document on Encode and PerlIO

     Encode::Supported
                 Encodings supported by Encode

     Encode::Symbol
                 Symbol Encodings

     Encode::TW  Taiwan-based Chinese Encodings

     Encode::Unicode
                 Various Unicode Transformation Formats

     Encode::Unicode::UTF7
                 UTF-7 encoding

     English     Use nice English (or awk) names for ugly
                 punctuation variables

     Env         Perl module that imports environment variables
                 as scalars or arrays

     Errno       System errno constants

     Exporter    Implements default import method for modules

     Exporter::Heavy
                 Exporter guts

     ExtUtils::CBuilder
                 Compile and link C code for Perl modules

     ExtUtils::CBuilder::Platform::Windows
                 Builder class for Windows platforms



perl v5.12.5         Last change: 2014-06-17                    9






Perl Programmers Reference Guide                    PERLMODLIB(1)



     ExtUtils::Command
                 Utilities to replace common UNIX commands in
                 Makefiles etc.

     ExtUtils::Command::MM
                 Commands for the MM's to use in Makefiles

     ExtUtils::Constant
                 Generate XS code to import C header constants

     ExtUtils::Constant::Base
                 Base class for ExtUtils::Constant objects

     ExtUtils::Constant::Utils
                 Helper functions for ExtUtils::Constant

     ExtUtils::Constant::XS
                 Generate C code for XS modules' constants.

     ExtUtils::Embed
                 Utilities for embedding Perl in C/C++
                 applications

     ExtUtils::Install
                 Install files from here to there

     ExtUtils::Installed
                 Inventory management of installed modules

     ExtUtils::Liblist
                 Determine libraries to use and how to use them

     ExtUtils::MM
                 OS adjusted ExtUtils::MakeMaker subclass

     ExtUtils::MM_AIX
                 AIX specific subclass of ExtUtils::MM_Unix

     ExtUtils::MM_Any
                 Platform-agnostic MM methods

     ExtUtils::MM_BeOS
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_Cygwin
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_DOS
                 DOS specific subclass of ExtUtils::MM_Unix




perl v5.12.5         Last change: 2014-06-17                   10






Perl Programmers Reference Guide                    PERLMODLIB(1)



     ExtUtils::MM_Darwin
                 Special behaviors for OS X

     ExtUtils::MM_MacOS
                 Once produced Makefiles for MacOS Classic

     ExtUtils::MM_NW5
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_OS2
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_QNX
                 QNX specific subclass of ExtUtils::MM_Unix

     ExtUtils::MM_UWIN
                 U/WIN specific subclass of ExtUtils::MM_Unix

     ExtUtils::MM_Unix
                 Methods used by ExtUtils::MakeMaker

     ExtUtils::MM_VMS
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_VOS
                 VOS specific subclass of ExtUtils::MM_Unix

     ExtUtils::MM_Win32
                 Methods to override UN*X behaviour in
                 ExtUtils::MakeMaker

     ExtUtils::MM_Win95
                 Method to customize MakeMaker for Win9X

     ExtUtils::MY
                 ExtUtils::MakeMaker subclass for customization

     ExtUtils::MakeMaker
                 Create a module Makefile

     ExtUtils::MakeMaker::Config
                 Wrapper around Config.pm

     ExtUtils::MakeMaker::FAQ
                 Frequently Asked Questions About MakeMaker

     ExtUtils::MakeMaker::Tutorial
                 Writing a module with MakeMaker




perl v5.12.5         Last change: 2014-06-17                   11






Perl Programmers Reference Guide                    PERLMODLIB(1)



     ExtUtils::Manifest
                 Utilities to write and check a MANIFEST file

     ExtUtils::Mkbootstrap
                 Make a bootstrap file for use by DynaLoader

     ExtUtils::Mksymlists
                 Write linker options files for dynamic extension

     ExtUtils::Packlist
                 Manage .packlist files

     ExtUtils::ParseXS
                 Converts Perl XS code into C code

     ExtUtils::XSSymSet
                 Keep sets of symbol names palatable to the VMS
                 linker

     ExtUtils::testlib
                 Add blib/* directories to @INC

     Fatal       Replace functions with equivalents which succeed
                 or die

     Fcntl       Load the C Fcntl.h defines

     File::Basename
                 Parse file paths into directory, filename and
                 suffix.

     File::CheckTree
                 Run many filetest checks on a tree

     File::Compare
                 Compare files or filehandles

     File::Copy  Copy files or filehandles

     File::DosGlob
                 DOS like globbing and then some

     File::Fetch A generic file fetching mechanism

     File::Find  Traverse a directory tree.

     File::Glob  Perl extension for BSD glob routine

     File::GlobMapper
                 Extend File Glob to Allow Input and Output Files

     File::Path  Create or remove directory trees



perl v5.12.5         Last change: 2014-06-17                   12






Perl Programmers Reference Guide                    PERLMODLIB(1)



     File::Spec  Portably perform operations on file names

     File::Spec::Cygwin
                 Methods for Cygwin file specs

     File::Spec::Epoc
                 Methods for Epoc file specs

     File::Spec::Functions
                 Portably perform operations on file names

     File::Spec::Mac
                 File::Spec for Mac OS (Classic)

     File::Spec::OS2
                 Methods for OS/2 file specs

     File::Spec::Unix
                 File::Spec for Unix, base for other File::Spec
                 modules

     File::Spec::VMS
                 Methods for VMS file specs

     File::Spec::Win32
                 Methods for Win32 file specs

     File::Temp  Return name and handle of a temporary file
                 safely

     File::stat  By-name interface to Perl's built-in stat()
                 functions

     FileCache   Keep more files open than the system permits

     FileHandle  Supply object methods for filehandles

     Filter::Simple
                 Simplified source filtering

     Filter::Util::Call
                 Perl Source Filter Utility Module

     FindBin     Locate directory of original perl script

     GDBM_File   Perl5 access to the gdbm library.

     Getopt::Long
                 Extended processing of command line options

     Getopt::Std Process single-character switches with switch
                 clustering



perl v5.12.5         Last change: 2014-06-17                   13






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Hash::Util  A selection of general-utility hash subroutines

     Hash::Util::FieldHash
                 Support for Inside-Out Classes

     I18N::Collate
                 Compare 8-bit scalar data according to the
                 current locale

     I18N::LangTags
                 Functions for dealing with RFC3066-style
                 language tags

     I18N::LangTags::Detect
                 Detect the user's language preferences

     I18N::LangTags::List
                 Tags and names for human languages

     I18N::Langinfo
                 Query locale information

     IO          Load various IO modules

     IO::Compress::Base
                 Base Class for IO::Compress modules

     IO::Compress::Bzip2
                 Write bzip2 files/buffers

     IO::Compress::Deflate
                 Write RFC 1950 files/buffers

     IO::Compress::FAQ
                 Frequently Asked Questions about IO::Compress

     IO::Compress::Gzip
                 Write RFC 1952 files/buffers

     IO::Compress::RawDeflate
                 Write RFC 1951 files/buffers

     IO::Compress::Zip
                 Write zip files/buffers

     IO::Dir     Supply object methods for directory handles

     IO::File    Supply object methods for filehandles

     IO::Handle  Supply object methods for I/O handles

     IO::Pipe    Supply object methods for pipes



perl v5.12.5         Last change: 2014-06-17                   14






Perl Programmers Reference Guide                    PERLMODLIB(1)



     IO::Poll    Object interface to system poll call

     IO::Seekable
                 Supply seek based methods for I/O objects

     IO::Select  OO interface to the select system call

     IO::Socket  Object interface to socket communications

     IO::Socket::INET
                 Object interface for AF_INET domain sockets

     IO::Socket::UNIX
                 Object interface for AF_UNIX domain sockets

     IO::Uncompress::AnyInflate
                 Uncompress zlib-based (zip, gzip) file/buffer

     IO::Uncompress::AnyUncompress
                 Uncompress gzip, zip, bzip2 or lzop file/buffer

     IO::Uncompress::Base
                 Base Class for IO::Uncompress modules

     IO::Uncompress::Bunzip2
                 Read bzip2 files/buffers

     IO::Uncompress::Gunzip
                 Read RFC 1952 files/buffers

     IO::Uncompress::Inflate
                 Read RFC 1950 files/buffers

     IO::Uncompress::RawInflate
                 Read RFC 1951 files/buffers

     IO::Uncompress::Unzip
                 Read zip files/buffers

     IO::Zlib    IO:: style interface to Compress::Zlib

     IPC::Cmd    Finding and running system commands made easy

     IPC::Msg    SysV Msg IPC object class

     IPC::Open2  Open a process for both reading and writing
                 using open2()

     IPC::Open3  Open a process for reading, writing, and error
                 handling using open3()

     IPC::Semaphore



perl v5.12.5         Last change: 2014-06-17                   15






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 SysV Semaphore IPC object class

     IPC::SharedMem
                 SysV Shared Memory IPC object class

     IPC::SysV   System V IPC constants and system calls

     List::Util  A selection of general-utility list subroutines

     List::Util::XS
                 Indicate if List::Util was compiled with a C
                 compiler

     Locale::Constants
                 Constants for Locale codes

     Locale::Country
                 ISO codes for country identification (ISO 3166)

     Locale::Currency
                 ISO three letter codes for currency
                 identification (ISO 4217)

     Locale::Language
                 ISO two letter codes for language identification
                 (ISO 639)

     Locale::Maketext
                 Framework for localization

     Locale::Maketext::Simple
                 Simple interface to Locale::Maketext::Lexicon

     Locale::Maketext::TPJ13
                 Article about software localization

     Locale::Script
                 ISO codes for script identification (ISO 15924)

     Log::Message
                 A generic message storing mechanism;

     Log::Message::Config
                 Configuration options for Log::Message

     Log::Message::Handlers
                 Message handlers for Log::Message

     Log::Message::Item
                 Message objects for Log::Message

     Log::Message::Simple



perl v5.12.5         Last change: 2014-06-17                   16






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Simplified interface to Log::Message

     MIME::Base64
                 Encoding and decoding of base64 strings

     MIME::QuotedPrint
                 Encoding and decoding of quoted-printable
                 strings

     Math::BigFloat
                 Arbitrary size floating point math package

     Math::BigInt
                 Arbitrary size integer/float math package

     Math::BigInt::Calc
                 Pure Perl module to support Math::BigInt

     Math::BigInt::CalcEmu
                 Emulate low-level math with BigInt code

     Math::BigInt::FastCalc
                 Math::BigInt::Calc with some XS for more speed

     Math::BigRat
                 Arbitrary big rational numbers

     Math::Complex
                 Complex numbers and associated mathematical
                 functions

     Math::Trig  Trigonometric functions

     Memoize     Make functions faster by trading space for time

     Memoize::AnyDBM_File
                 Glue to provide EXISTS for AnyDBM_File for
                 Storable use

     Memoize::Expire
                 Plug-in module for automatic expiration of
                 memoized values

     Memoize::ExpireFile
                 Test for Memoize expiration semantics

     Memoize::ExpireTest
                 Test for Memoize expiration semantics

     Memoize::NDBM_File
                 Glue to provide EXISTS for NDBM_File for
                 Storable use



perl v5.12.5         Last change: 2014-06-17                   17






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Memoize::SDBM_File
                 Glue to provide EXISTS for SDBM_File for
                 Storable use

     Memoize::Storable
                 Store Memoized data in Storable database

     Module::Build
                 Build and install Perl modules

     Module::Build::API
                 API Reference for Module Authors

     Module::Build::Authoring
                 Authoring Module::Build modules

     Module::Build::Base
                 Default methods for Module::Build

     Module::Build::Bundling
                 How to bundle Module::Build with a distribution

     Module::Build::Compat
                 Compatibility with ExtUtils::MakeMaker

     Module::Build::ConfigData
                 Configuration for Module::Build

     Module::Build::Cookbook
                 Examples of Module::Build Usage

     Module::Build::ModuleInfo
                 Gather package and POD information from a perl
                 module file

     Module::Build::Notes
                 Create persistent distribution configuration
                 modules

     Module::Build::PPMMaker
                 Perl Package Manager file creation

     Module::Build::Platform::Amiga
                 Builder class for Amiga platforms

     Module::Build::Platform::Default
                 Stub class for unknown platforms

     Module::Build::Platform::EBCDIC
                 Builder class for EBCDIC platforms

     Module::Build::Platform::MPEiX



perl v5.12.5         Last change: 2014-06-17                   18






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Builder class for MPEiX platforms

     Module::Build::Platform::MacOS
                 Builder class for MacOS platforms

     Module::Build::Platform::RiscOS
                 Builder class for RiscOS platforms

     Module::Build::Platform::Unix
                 Builder class for Unix platforms

     Module::Build::Platform::VMS
                 Builder class for VMS platforms

     Module::Build::Platform::VOS
                 Builder class for VOS platforms

     Module::Build::Platform::Windows
                 Builder class for Windows platforms

     Module::Build::Platform::aix
                 Builder class for AIX platform

     Module::Build::Platform::cygwin
                 Builder class for Cygwin platform

     Module::Build::Platform::darwin
                 Builder class for Mac OS X platform

     Module::Build::Platform::os2
                 Builder class for OS/2 platform

     Module::CoreList
                 What modules shipped with versions of perl

     Module::Load
                 Runtime require of both modules and files

     Module::Load::Conditional
                 Looking up module information / loading at
                 runtime

     Module::Loaded
                 Mark modules as loaded or unloaded

     Module::Pluggable
                 Automatically give your module the ability to
                 have plugins

     Module::Pluggable::Object
                 Automatically give your module the ability to
                 have plugins



perl v5.12.5         Last change: 2014-06-17                   19






Perl Programmers Reference Guide                    PERLMODLIB(1)



     NDBM_File   Tied access to ndbm files

     NEXT        Provide a pseudo-class NEXT (et al) that allows
                 method redispatch

     Net::Cmd    Network Command class (as used by FTP, SMTP etc)

     Net::Config Local configuration data for libnet

     Net::Domain Attempt to evaluate the current host's internet
                 name and domain

     Net::FTP    FTP Client class

     Net::NNTP   NNTP Client class

     Net::Netrc  OO interface to users netrc file

     Net::POP3   Post Office Protocol 3 Client class (RFC1939)

     Net::Ping   Check a remote host for reachability

     Net::SMTP   Simple Mail Transfer Protocol Client

     Net::Time   Time and daytime network client interface

     Net::hostent
                 By-name interface to Perl's built-in gethost*()
                 functions

     Net::libnetFAQ
                 Libnet Frequently Asked Questions

     Net::netent By-name interface to Perl's built-in getnet*()
                 functions

     Net::protoent
                 By-name interface to Perl's built-in getproto*()
                 functions

     Net::servent
                 By-name interface to Perl's built-in getserv*()
                 functions

     O           Generic interface to Perl Compiler backends

     ODBM_File   Tied access to odbm files

     Object::Accessor
                 Interface to create per object accessors

     Opcode      Disable named opcodes when compiling perl code



perl v5.12.5         Last change: 2014-06-17                   20






Perl Programmers Reference Guide                    PERLMODLIB(1)



     POSIX       Perl interface to IEEE Std 1003.1

     Package::Constants
                 List all constants declared in a package

     Params::Check
                 A generic input parsing/checking mechanism.

     Parse::CPAN::Meta
                 Parse META.yml and other similar CPAN metadata
                 files

     PerlIO      On demand loader for PerlIO layers and root of
                 PerlIO::* name space

     PerlIO::encoding
                 Encoding layer

     PerlIO::scalar
                 In-memory IO, scalar IO

     PerlIO::via Helper class for PerlIO layers implemented in
                 perl

     PerlIO::via::QuotedPrint
                 PerlIO layer for quoted-printable strings

     Pod::Checker
                 Check pod documents for syntax errors

     Pod::Escapes
                 For resolving Pod E<...> sequences

     Pod::Find   Find POD documents in directory trees

     Pod::Functions
                 Group Perl's functions a la perlfunc.pod

     Pod::Html   Module to convert pod files to HTML

     Pod::InputObjects
                 Objects representing POD input paragraphs,
                 commands, etc.

     Pod::LaTeX  Convert Pod data to formatted Latex

     Pod::Man    Convert POD data to formatted *roff input

     Pod::ParseLink
                 Parse an L<> formatting code in POD text

     Pod::ParseUtils



perl v5.12.5         Last change: 2014-06-17                   21






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Helpers for POD parsing and conversion

     Pod::Parser Base class for creating POD filters and
                 translators

     Pod::Perldoc
                 Look up Perl documentation in Pod format.

     Pod::Perldoc::BaseTo
                 Base for Pod::Perldoc formatters

     Pod::Perldoc::GetOptsOO
                 Customized option parser for Pod::Perldoc

     Pod::Perldoc::ToChecker
                 Let Perldoc check Pod for errors

     Pod::Perldoc::ToMan
                 Let Perldoc render Pod as man pages

     Pod::Perldoc::ToNroff
                 Let Perldoc convert Pod to nroff

     Pod::Perldoc::ToPod
                 Let Perldoc render Pod as ... Pod!

     Pod::Perldoc::ToRtf
                 Let Perldoc render Pod as RTF

     Pod::Perldoc::ToText
                 Let Perldoc render Pod as plaintext

     Pod::Perldoc::ToTk
                 Let Perldoc use Tk::Pod to render Pod

     Pod::Perldoc::ToXml
                 Let Perldoc render Pod as XML

     Pod::PlainText
                 Convert POD data to formatted ASCII text

     Pod::Plainer
                 Perl extension for converting Pod to old-style
                 Pod.

     Pod::Select Extract selected sections of POD from input

     Pod::Simple Framework for parsing Pod

     Pod::Simple::Checker
                 Check the Pod syntax of a document




perl v5.12.5         Last change: 2014-06-17                   22






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Pod::Simple::Debug
                 Put Pod::Simple into trace/debug mode

     Pod::Simple::DumpAsText
                 Dump Pod-parsing events as text

     Pod::Simple::DumpAsXML
                 Turn Pod into XML

     Pod::Simple::HTML
                 Convert Pod to HTML

     Pod::Simple::HTMLBatch
                 Convert several Pod files to several HTML files

     Pod::Simple::LinkSection
                 Represent "section" attributes of L codes

     Pod::Simple::Methody
                 Turn Pod::Simple events into method calls

     Pod::Simple::PullParser
                 A pull-parser interface to parsing Pod

     Pod::Simple::PullParserEndToken
                 End-tokens from Pod::Simple::PullParser

     Pod::Simple::PullParserStartToken
                 Start-tokens from Pod::Simple::PullParser

     Pod::Simple::PullParserTextToken
                 Text-tokens from Pod::Simple::PullParser

     Pod::Simple::PullParserToken
                 Tokens from Pod::Simple::PullParser

     Pod::Simple::RTF
                 Format Pod as RTF

     Pod::Simple::Search
                 Find POD documents in directory trees

     Pod::Simple::SimpleTree
                 Parse Pod into a simple parse tree

     Pod::Simple::Subclassing
                 Write a formatter as a Pod::Simple subclass

     Pod::Simple::Text
                 Format Pod as plaintext

     Pod::Simple::TextContent



perl v5.12.5         Last change: 2014-06-17                   23






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Get the text content of Pod

     Pod::Simple::XHTML
                 Format Pod as validating XHTML

     Pod::Simple::XMLOutStream
                 Turn Pod into XML

     Pod::Text   Convert POD data to formatted ASCII text

     Pod::Text::Color
                 Convert POD data to formatted color ASCII text

     Pod::Text::Termcap
                 Convert POD data to ASCII text with format
                 escapes

     Pod::Usage  Print a usage message from embedded pod
                 documentation

     SDBM_File   Tied access to sdbm files

     Safe        Compile and execute code in restricted
                 compartments

     Scalar::Util
                 A selection of general-utility scalar
                 subroutines

     Search::Dict
                 Search for key in dictionary file

     SelectSaver Save and restore selected file handle

     SelfLoader  Load functions only on demand

     Shell       Run shell commands transparently within perl

     Socket      Load the C socket.h defines and structure
                 manipulators

     Storable    Persistence for Perl data structures

     Switch      A switch statement for Perl

     Symbol      Manipulate Perl symbols and their names

     Sys::Hostname
                 Try every conceivable way to get hostname

     Sys::Syslog Perl interface to the UNIX syslog(3) calls




perl v5.12.5         Last change: 2014-06-17                   24






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Sys::Syslog::Win32
                 Win32 support for Sys::Syslog

     TAP::Base   Base class that provides common functionality to
                 TAP::Parser

     TAP::Formatter::Color
                 Run Perl test scripts with color

     TAP::Formatter::Console
                 Harness output delegate for default console
                 output

     TAP::Formatter::Console
                 Harness output delegate for default console
                 output

     TAP::Formatter::Console::ParallelSession
                 Harness output delegate for parallel console
                 output

     TAP::Formatter::Console::Session
                 Harness output delegate for default console
                 output

     TAP::Formatter::File
                 Harness output delegate for file output

     TAP::Formatter::File::Session
                 Harness output delegate for file output

     TAP::Formatter::Session
                 Abstract base class for harness output delegate

     TAP::Harness
                 Run test scripts with statistics

     TAP::Object Base class that provides common functionality to
                 all "TAP::*" modules

     TAP::Parser Parse TAP output

     TAP::Parser::Aggregator
                 Aggregate TAP::Parser results

     TAP::Parser::Grammar
                 A grammar for the Test Anything Protocol.

     TAP::Parser::Iterator
                 Internal base class for TAP::Parser Iterators

     TAP::Parser::Iterator::Array



perl v5.12.5         Last change: 2014-06-17                   25






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Internal TAP::Parser array Iterator

     TAP::Parser::Iterator::Process
                 Internal TAP::Parser Iterator

     TAP::Parser::Iterator::Stream
                 Internal TAP::Parser Iterator

     TAP::Parser::IteratorFactory
                 Internal TAP::Parser Iterator

     TAP::Parser::Multiplexer
                 Multiplex multiple TAP::Parsers

     TAP::Parser::Result
                 Base class for TAP::Parser output objects

     TAP::Parser::Result::Bailout
                 Bailout result token.

     TAP::Parser::Result::Comment
                 Comment result token.

     TAP::Parser::Result::Plan
                 Plan result token.

     TAP::Parser::Result::Pragma
                 TAP pragma token.

     TAP::Parser::Result::Test
                 Test result token.

     TAP::Parser::Result::Unknown
                 Unknown result token.

     TAP::Parser::Result::Version
                 TAP syntax version token.

     TAP::Parser::Result::YAML
                 YAML result token.

     TAP::Parser::ResultFactory
                 Factory for creating TAP::Parser output objects

     TAP::Parser::Scheduler
                 Schedule tests during parallel testing

     TAP::Parser::Scheduler::Job
                 A single testing job.

     TAP::Parser::Scheduler::Spinner
                 A no-op job.



perl v5.12.5         Last change: 2014-06-17                   26






Perl Programmers Reference Guide                    PERLMODLIB(1)



     TAP::Parser::Source
                 Stream output from some source

     TAP::Parser::Source::Perl
                 Stream Perl output

     TAP::Parser::Utils
                 Internal TAP::Parser utilities

     TAP::Parser::YAMLish::Reader
                 Read YAMLish data from iterator

     TAP::Parser::YAMLish::Writer
                 Write YAMLish data

     Term::ANSIColor
                 Color screen output using ANSI escape sequences

     Term::Cap   Perl termcap interface

     Term::Complete
                 Perl word completion module

     Term::ReadLine
                 Perl interface to various "readline" packages.

     Term::UI    Term::ReadLine UI made easy

     Test        Provides a simple framework for writing test
                 scripts

     Test::Builder
                 Backend for building test libraries

     Test::Builder::Module
                 Base class for test modules

     Test::Builder::Tester
                 Test testsuites that have been built with

     Test::Builder::Tester::Color
                 Turn on colour in Test::Builder::Tester

     Test::Harness
                 Run Perl standard test scripts with statistics

     Test::More  Yet another framework for writing test scripts

     Test::Simple
                 Basic utilities for writing tests.

     Test::Tutorial



perl v5.12.5         Last change: 2014-06-17                   27






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 A tutorial about writing really basic tests

     Text::Abbrev
                 Create an abbreviation table from a list

     Text::Balanced
                 Extract delimited text sequences from strings.

     Text::ParseWords
                 Parse text into an array of tokens or array of
                 arrays

     Text::Soundex
                 Implementation of the soundex algorithm.

     Text::Tabs  Expand and unexpand tabs per the unix expand(1)
                 and unexpand(1)

     Text::Wrap  Line wrapping to form simple paragraphs

     Thread      Manipulate threads in Perl (for old code only)

     Thread::Queue
                 Thread-safe queues

     Thread::Semaphore
                 Thread-safe semaphores

     Tie::Array  Base class for tied arrays

     Tie::File   Access the lines of a disk file via a Perl array

     Tie::Handle Base class definitions for tied handles

     Tie::Hash   Base class definitions for tied hashes

     Tie::Hash::NamedCapture
                 Named regexp capture buffers

     Tie::Memoize
                 Add data to hash when needed

     Tie::RefHash
                 Use references as hash keys

     Tie::Scalar Base class definitions for tied scalars

     Tie::StdHandle
                 Base class definitions for tied handles

     Tie::SubstrHash
                 Fixed-table-size, fixed-key-length hashing



perl v5.12.5         Last change: 2014-06-17                   28






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Time::HiRes High resolution alarm, sleep, gettimeofday,
                 interval timers

     Time::Local Efficiently compute time from local and GMT time

     Time::Piece Object Oriented time objects

     Time::Seconds
                 A simple API to convert seconds to other date
                 values

     Time::gmtime
                 By-name interface to Perl's built-in gmtime()
                 function

     Time::localtime
                 By-name interface to Perl's built-in localtime()
                 function

     Time::tm    Internal object used by Time::gmtime and
                 Time::localtime

     UNIVERSAL   Base class for ALL classes (blessed references)

     Unicode::Collate
                 Unicode Collation Algorithm

     Unicode::Normalize
                 Unicode Normalization Forms

     Unicode::UCD
                 Unicode character database

     User::grent By-name interface to Perl's built-in getgr*()
                 functions

     User::pwent By-name interface to Perl's built-in getpw*()
                 functions

     VMS::DCLsym Perl extension to manipulate DCL symbols

     VMS::Stdio  Standard I/O functions via VMS extensions

     Win32API::File
                 Low-level access to Win32 system API calls for
                 files/dirs.

     Win32CORE   Win32 CORE function stubs

     XS::APItest Test the perl C API

     XS::APItest::KeywordRPN



perl v5.12.5         Last change: 2014-06-17                   29






Perl Programmers Reference Guide                    PERLMODLIB(1)



                 Write arithmetic expressions in RPN

     XS::Typemap Module to test the XS typemaps distributed with
                 perl

     XSLoader    Dynamically load C libraries into Perl code

     version::Internals
                 Perl extension for Version Objects

     To find out all modules installed on your system, including
     those without documentation or outside the standard release,
     just use the following command (under the default win32
     shell, double quotes should be used instead of single
     quotes).

         % 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 find program, you can use the Perl find2perl program
     instead, which generates Perl code as output you can run
     through perl.  If you have a man program but it doesn't find
     your modules, you'll have to fix your manpath.  See perl for
     details.  If you have no system man command, you might try
     the perldoc program.

     Note also that the command "perldoc perllocal" 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.)

  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 linked in statically.
     Supported extension modules include Socket, Fcntl, and
     POSIX.

     Many popular C extension modules do not come bundled (at
     least, not 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 Google.

CPAN
     CPAN stands for Comprehensive Perl Archive Network; it's a



perl v5.12.5         Last change: 2014-06-17                   30






Perl Programmers Reference Guide                    PERLMODLIB(1)



     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://www.cpan.org/

     Most importantly, CPAN includes around a thousand unbundled
     modules, some of which require a C compiler to build.  Major
     categories of modules are:

     o   Language Extensions and Documentation Tools

     o   Development Support

     o   Operating System Interfaces

     o   Networking, Device Control (modems) and InterProcess
         Communication

     o   Data Types and Data Type Utilities

     o   Database Interfaces

     o   User Interfaces

     o   Interfaces to / Emulations of Other Programming
         Languages

     o   File Names, File Systems and File Locking (see also File
         Handles)

     o   String Processing, Language Text Processing, Parsing,
         and Searching

     o   Option, Argument, Parameter, and Configuration File
         Processing

     o   Internationalization and Locale

     o   Authentication, Security, and Encryption

     o   World Wide Web, HTML, HTTP, CGI, MIME

     o   Server and Daemon Utilities

     o   Archiving and Compression

     o   Images, Pixmap and Bitmap Manipulation, Drawing, and
         Graphing

     o   Mail and Usenet News




perl v5.12.5         Last change: 2014-06-17                   31






Perl Programmers Reference Guide                    PERLMODLIB(1)



     o   Control Flow Utilities (callbacks and exceptions etc)

     o   File Handle and Input/Output Stream Utilities

     o   Miscellaneous Modules

     The list of the registered CPAN sites follows.  Please note
     that the sorting order is alphabetical on fields:

     Continent
        |
        |-->Country
              |
              |-->[state/province]
                        |
                        |-->ftp
                        |
                        |-->[http]

     and thus the North American servers happen to be listed
     between the European and the South American sites.

     Registered CPAN sites

  Africa
     South Africa
                               http://cpan.mirror.ac.za/
                               ftp://cpan.mirror.ac.za/
                               http://mirror.is.co.za/pub/cpan/
                               ftp://ftp.is.co.za/pub/cpan/
                               ftp://ftp.saix.net/pub/CPAN/

  Asia
     Hong Kong
                               http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/
                               ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/
                               http://mirrors.geoexpat.com/cpan/

     India
                               http://perlmirror.indialinks.com/

     Indonesia
                               http://cpan.biz.net.id/
                               http://komo.vlsm.org/CPAN/
                               ftp://komo.vlsm.org/CPAN/
                               http://cpan.pesat.net.id/
                               http://mirror.unej.ac.id/cpan/
                               ftp://mirror.unej.ac.id/cpan/

     Japan





perl v5.12.5         Last change: 2014-06-17                   32






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               ftp://ftp.u-aizu.ac.jp/pub/CPAN
                               ftp://ftp.kddilabs.jp/CPAN/
                               http://ftp.nara.wide.ad.jp/pub/CPAN/
                               ftp://ftp.nara.wide.ad.jp/pub/CPAN/
                               http://ftp.jaist.ac.jp/pub/CPAN/
                               ftp://ftp.jaist.ac.jp/pub/CPAN/
                               ftp://ftp.dti.ad.jp/pub/lang/CPAN/
                               ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
                               http://ftp.riken.jp/lang/CPAN/
                               ftp://ftp.riken.jp/lang/CPAN/
                               http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
                               ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/

     Kazakhstan
                               http://mirror.linuxiso.kz/CPAN/

     Republic of Korea
                               http://ftp.kaist.ac.kr/pub/CPAN
                               ftp://ftp.kaist.ac.kr/pub/CPAN
                               http://cpan.mirror.cdnetworks.com/
                               ftp://cpan.mirror.cdnetworks.com/CPAN/
                               http://cpan.sarang.net/
                               ftp://cpan.sarang.net/CPAN/

     Russia
                               http://cpan.tomsk.ru/
                               ftp://cpan.tomsk.ru/

     Singapore
                               http://mirror.averse.net/pub/CPAN
                               ftp://mirror.averse.net/pub/CPAN
                               http://cpan.mirror.choon.net/
                               http://cpan.oss.eznetsols.org
                               ftp://ftp.oss.eznetsols.org/cpan

     Taiwan
                               http://ftp.cse.yzu.edu.tw/pub/CPAN/
                               ftp://ftp.cse.yzu.edu.tw/pub/CPAN/
                               http://cpan.nctu.edu.tw/
                               ftp://cpan.nctu.edu.tw/
                               ftp://ftp.ncu.edu.tw/CPAN/
                               http://cpan.cdpa.nsysu.edu.tw/
                               ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/
                               http://cpan.stu.edu.tw
                               ftp://ftp.stu.edu.tw/CPAN
                               http://ftp.stu.edu.tw/CPAN
                               ftp://ftp.stu.edu.tw/pub/CPAN
                               http://cpan.cs.pu.edu.tw/
                               ftp://cpan.cs.pu.edu.tw/pub/CPAN

     Thailand




perl v5.12.5         Last change: 2014-06-17                   33






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               http://mirrors.issp.co.th/cpan/
                               ftp://mirrors.issp.co.th/cpan/

     Turkey
                               http://cpan.gazi.edu.tr/
                               http://cpan.ulak.net.tr
                               ftp://ftp.ulak.net.tr/pub/CPAN

     Viet Nam
                               http://mirror-fpt-telecom.fpt.net/cpan/
                               ftp://mirror-fpt-telecom.fpt.net/cpan/

  Central America
     Costa Rica
                               http://mirrors.ucr.ac.cr/CPAN/
                               ftp://mirrors.ucr.ac.cr/CPAN/

  Europe
     Austria
                               http://cpan.inode.at/
                               ftp://cpan.inode.at
                               http://gd.tuwien.ac.at/languages/perl/CPAN/
                               ftp://gd.tuwien.ac.at/pub/CPAN/

     Belgium
                               http://ftp.belnet.be/mirror/ftp.cpan.org/
                               ftp://ftp.belnet.be/mirror/ftp.cpan.org/
                               http://ftp.easynet.be/pub/CPAN/
                               http://cpan.weepee.org/
                               http://cpan.fluoline.net/

     Bosnia and Herzegovina
                               http://cpan.blic.net/

     Bulgaria
                               http://cpan.cbox.biz/
                               ftp://cpan.cbox.biz/cpan/
                               http://cpan.digsys.bg/
                               ftp://ftp.digsys.bg/pub/CPAN

     Croatia
                               http://ftp.carnet.hr/pub/CPAN/
                               ftp://ftp.carnet.hr/pub/CPAN/

     Czech Republic
                               ftp://ftp.fi.muni.cz/pub/CPAN/
                               http://archive.cpan.cz/

     Denmark






perl v5.12.5         Last change: 2014-06-17                   34






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               http://mirrors.dotsrc.org/cpan
                               ftp://mirrors.dotsrc.org/cpan/
                               http://www.cpan.dk/
                               http://mirror.uni-c.dk/pub/CPAN/

     Finland
                               ftp://ftp.funet.fi/pub/languages/perl/CPAN/
                               http://mirror.eunet.fi/CPAN

     France
                               http://cpan.enstimac.fr/
                               ftp://ftp.inria.fr/pub/CPAN/
                               http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/
                               ftp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/
                               ftp://ftp.lip6.fr/pub/perl/CPAN/
                               http://mir2.ovh.net/ftp.cpan.org
                               ftp://mir1.ovh.net/ftp.cpan.org
                               http://cpan.miroir-francais.fr/
                               ftp://miroir-francais.fr/pub/cpan/
                               ftp://ftp.oleane.net/pub/CPAN/
                               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
                               http://cpan.cict.fr/
                               ftp://cpan.cict.fr/pub/CPAN/

     Germany
                               ftp://ftp.fu-berlin.de/unix/languages/perl/
                               http://mirrors.softliste.de/cpan/
                               ftp://ftp.rub.de/pub/CPAN/
                               http://www.planet-elektronik.de/CPAN/
                               http://ftp.hosteurope.de/pub/CPAN/
                               ftp://ftp.hosteurope.de/pub/CPAN/
                               http://www.mirrorspace.org/cpan/
                               http://mirror.netcologne.de/cpan/
                               ftp://mirror.netcologne.de/cpan/
                               ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
                               http://ftp-stud.hs-esslingen.de/pub/Mirrors/CPAN/
                               ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/CPAN/
                               http://mirrors.zerg.biz/cpan/
                               http://ftp.gwdg.de/pub/languages/perl/CPAN/
                               ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
                               http://dl.ambiweb.de/mirrors/ftp.cpan.org/
                               http://cpan.mirror.clusters.kg/
                               http://cpan.mirror.iphh.net/
                               ftp://cpan.mirror.iphh.net/pub/CPAN/
                               http://cpan.mirroring.de/
                               http://mirror.informatik.uni-mannheim.de/pub/mirrors/CPAN/
                               ftp://mirror.informatik.uni-mannheim.de/pub/mirrors/CPAN/
                               http://ftp.cw.net/pub/CPAN/
                               ftp://ftp.cw.net/pub/CPAN/



perl v5.12.5         Last change: 2014-06-17                   35






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               http://cpan.cpantesters.org/
                               ftp://cpan.cpantesters.org/CPAN/
                               http://cpan.mirrored.de/
                               ftp://mirror.petamem.com/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/

     Greece
                               ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
                               ftp://ftp.ntua.gr/pub/lang/perl/
                               http://cpan.cc.uoc.gr/
                               ftp://ftp.cc.uoc.gr/mirrors/CPAN/

     Hungary
                               http://cpan.mirrors.enexis.hu/
                               ftp://cpan.mirrors.enexis.hu/mirrors/cpan/
                               http://cpan.hu/

     Iceland
                               http://ftp.rhnet.is/pub/CPAN/
                               ftp://ftp.rhnet.is/pub/CPAN/

     Ireland
                               http://ftp.esat.net/pub/languages/perl/CPAN/
                               ftp://ftp.esat.net/pub/languages/perl/CPAN/
                               http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
                               ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN

     Italy
                               http://bo.mirror.garr.it/mirrors/CPAN/
                               http://cpan.panu.it/
                               ftp://ftp.panu.it/pub/mirrors/perl/CPAN/
                               http://cpan.fastbull.org/

     Latvia
                               http://kvin.lv/pub/CPAN/

     Lithuania
                               http://ftp.litnet.lt/pub/CPAN/
                               ftp://ftp.litnet.lt/pub/CPAN/

     Malta
                               http://cpan.waldonet.net.mt/

     Netherlands








perl v5.12.5         Last change: 2014-06-17                   36






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               ftp://ftp.quicknet.nl/pub/CPAN/
                               http://mirror.hostfuss.com/CPAN/
                               ftp://mirror.hostfuss.com/CPAN/
                               http://mirrors3.kernel.org/cpan/
                               ftp://mirrors3.kernel.org/pub/CPAN/
                               http://cpan.osmirror.nl/
                               ftp://ftp.osmirror.nl/pub/cpan/
                               http://cpan.mirror.versatel.nl/
                               ftp://ftp.mirror.versatel.nl/cpan/
                               ftp://download.xs4all.nl/pub/mirror/CPAN/
                               http://mirror.leaseweb.com/CPAN/
                               ftp://mirror.leaseweb.com/CPAN/
                               ftp://ftp.cpan.nl/pub/CPAN/
                               http://archive.cs.uu.nl/mirror/CPAN/
                               ftp://ftp.cs.uu.nl/mirror/CPAN/
                               http://https://luxitude.net/cpan/

     Norway
                               ftp://ftp.uninett.no/pub/languages/perl/CPAN
                               ftp://ftp.uit.no/pub/languages/perl/cpan/

     Poland
                               http://mirror.icis.pcz.pl/CPAN/
                               ftp://mirror.icis.pcz.pl/CPAN/
                               http://piotrkosoft.net/pub/mirrors/CPAN/
                               ftp://ftp.piotrkosoft.net/pub/mirrors/CPAN/
                               http://ftp.man.poznan.pl/pub/CPAN
                               ftp://ftp.man.poznan.pl/pub/CPAN
                               ftp://sunsite.icm.edu.pl/pub/CPAN/
                               ftp://ftp.tpnet.pl/d4/CPAN/

     Portugal
                               http://cpan.dei.uc.pt/
                               ftp://ftp.dei.uc.pt/pub/CPAN
                               ftp://ftp.ist.utl.pt/pub/CPAN/
                               http://cpan.perl.pt/
                               http://cpan.ip.pt/
                               ftp://cpan.ip.pt/pub/cpan/
                               http://mirrors.nfsi.pt/CPAN/
                               ftp://mirrors.nfsi.pt/pub/CPAN/
                               http://cpan.dcc.fc.up.pt/

     Romania
                               http://ftp.astral.ro/pub/CPAN/
                               ftp://ftp.astral.ro/pub/CPAN/
                               ftp://ftp.lug.ro/CPAN
                               http://mirrors.xservers.ro/CPAN/
                               http://mirrors.hostingromania.ro/ftp.cpan.org/
                               ftp://ftp.hostingromania.ro/mirrors/ftp.cpan.org/
                               ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
                               ftp://ftp.ambra.ro/pub/CPAN




perl v5.12.5         Last change: 2014-06-17                   37






Perl Programmers Reference Guide                    PERLMODLIB(1)



     Russia
                               ftp://ftp.aha.ru/CPAN/
                               http://cpan.rinet.ru/
                               ftp://cpan.rinet.ru/pub/mirror/CPAN/
                               ftp://ftp.SpringDaemons.com/pub/CPAN/
                               http://cpan.nx1.ru/
                               ftp://cpan.nx1.ru/
                               http://mirror.rol.ru/CPAN/
                               http://ftp.silvernet.ru/CPAN/
                               http://ftp.spbu.ru/CPAN/
                               ftp://ftp.spbu.ru/CPAN/

     Slovakia
                               http://cpan.fyxm.net/

     Slovenia
                               http://www.klevze.si/cpan

     Spain
                               http://osl.ugr.es/CPAN/
                               ftp://ftp.rediris.es/mirror/CPAN/
                               http://ftp.gui.uva.es/sites/cpan.org/
                               ftp://ftp.gui.uva.es/sites/cpan.org/

     Sweden
                               http://mirrors4.kernel.org/cpan/
                               ftp://mirrors4.kernel.org/pub/CPAN/

     Switzerland
                               http://cpan.mirror.solnet.ch/
                               ftp://ftp.solnet.ch/mirror/CPAN/
                               http://mirror.switch.ch/ftp/mirror/CPAN/
                               ftp://mirror.switch.ch/mirror/CPAN/

     Ukraine
                               http://cpan.makeperl.org/
                               ftp://cpan.makeperl.org/pub/CPAN
                               http://cpan.org.ua/
                               http://no-more.kiev.ua/CPAN/
                               ftp://no-more.kiev.ua/pub/CPAN/
                               http://cpan.gafol.net/
                               ftp://ftp.gafol.net/pub/cpan/

     United Kingdom











perl v5.12.5         Last change: 2014-06-17                   38






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               http://www.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/
                               ftp://ftp.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/
                               http://mirror.tje.me.uk/pub/mirrors/ftp.cpan.org/
                               ftp://mirror.tje.me.uk/pub/mirrors/ftp.cpan.org/
                               http://www.mirror.8086.net/sites/CPAN/
                               ftp://ftp.mirror.8086.net/sites/CPAN/
                               http://cpan.mirror.anlx.net/
                               ftp://ftp.mirror.anlx.net/CPAN/
                               http://mirror.bytemark.co.uk/CPAN/
                               ftp://mirror.bytemark.co.uk/CPAN/
                               http://cpan.etla.org/
                               ftp://cpan.etla.org/pub/CPAN
                               ftp://ftp.demon.co.uk/pub/CPAN/
                               http://mirror.sov.uk.goscomb.net/CPAN/
                               ftp://mirror.sov.uk.goscomb.net/pub/CPAN/
                               http://ftp.plig.net/pub/CPAN/
                               ftp://ftp.plig.net/pub/CPAN/
                               http://ftp.ticklers.org/pub/CPAN/
                               ftp://ftp.ticklers.org/pub/CPAN/
                               http://cpan.mirrors.uk2.net/
                               ftp://mirrors.uk2.net/pub/CPAN/
                               http://mirror.ox.ac.uk/sites/www.cpan.org/
                               ftp://mirror.ox.ac.uk/sites/www.cpan.org/

  North America
     Bahamas
                               http://www.securehost.com/mirror/CPAN/

     Canada
                               http://cpan.justanotherperlhacker.com/pub/CPAN/
                               ftp://cpan.justanotherperlhacker.com/pub/CPAN/
                               http://cpan.arcticnetwork.ca
                               ftp://mirror.arcticnetwork.ca/pub/CPAN
                               http://cpan.sunsite.ualberta.ca/
                               ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
                               http://theoryx5.uwinnipeg.ca/pub/CPAN/
                               ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
                               http://arwen.cs.dal.ca/mirror/CPAN/
                               ftp://arwen.cs.dal.ca/pub/mirror/CPAN/
                               http://CPAN.mirror.rafal.ca/
                               ftp://CPAN.mirror.rafal.ca/pub/CPAN/
                               ftp://ftp.nrc.ca/pub/CPAN/
                               http://mirror.csclub.uwaterloo.ca/pub/CPAN/
                               ftp://mirror.csclub.uwaterloo.ca/pub/CPAN/

     Mexico
                               http://www.msg.com.mx/CPAN/
                               ftp://ftp.msg.com.mx/pub/CPAN/

     United States
         Alabama




perl v5.12.5         Last change: 2014-06-17                   39






Perl Programmers Reference Guide                    PERLMODLIB(1)



                                       http://mirror.hiwaay.net/CPAN/
                                       ftp://mirror.hiwaay.net/CPAN/

         California
                                       http://cpan.knowledgematters.net/
                                       http://cpan.binkerton.com/
                                       http://cpan.develooper.com/
                                       http://mirrors.gossamer-threads.com/CPAN
                                       http://cpan.schatt.com/
                                       http://mirrors.kernel.org/cpan/
                                       ftp://mirrors.kernel.org/pub/CPAN
                                       http://mirrors2.kernel.org/cpan/
                                       ftp://mirrors2.kernel.org/pub/CPAN/
                                       http://cpan.mirrors.redwire.net/
                                       http://cpan.mirror.facebook.net/
                                       http://mirrors1.kernel.org/cpan/
                                       ftp://mirrors1.kernel.org/pub/CPAN/
                                       http://cpan-sj.viaverio.com/
                                       ftp://cpan-sj.viaverio.com/pub/CPAN/
                                       http://www.perl.com/CPAN/
                                       http://cpan.yahoo.com/

         Florida
                                       ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
                                       http://mirror.atlantic.net/pub/CPAN/
                                       ftp://mirror.atlantic.net/pub/CPAN/
                                       http://mirror.candidhosting.com/pub/CPAN
                                       ftp://mirror.candidhosting.com/pub/CPAN

         Idaho
                                       http://mirror.its.uidaho.edu/pub/cpan/
                                       ftp://mirror.its.uidaho.edu/cpan/

         Illinois
                                       http://cpan.mirrors.hoobly.com/
                                       http://cpan.uchicago.edu/pub/CPAN/
                                       ftp://cpan.uchicago.edu/pub/CPAN/
                                       http://mirrors.servercentral.net/CPAN/
                                       http://www.stathy.com/CPAN/
                                       ftp://www.stathy.com/CPAN/

         Indiana
                                       ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
                                       http://cpan.netnitco.net/
                                       ftp://cpan.netnitco.net/pub/mirrors/CPAN/
                                       http://ftp.ndlug.nd.edu/pub/perl/
                                       ftp://ftp.ndlug.nd.edu/pub/perl/
                                       http://fx.saintjoe.edu/pub/CPAN

         Massachusetts
                                       ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/




perl v5.12.5         Last change: 2014-06-17                   40






Perl Programmers Reference Guide                    PERLMODLIB(1)



         Michigan
                                       http://ftp.wayne.edu/cpan/
                                       ftp://ftp.wayne.edu/cpan/

         Minnesota
                                       http://cpan.msi.umn.edu/

         New Jersey
                                       http://mirror.datapipe.net/CPAN/
                                       ftp://mirror.datapipe.net/pub/CPAN/

         New York
                                       http://mirrors.24-7-solutions.net/pub/CPAN/
                                       ftp://mirrors.24-7-solutions.net/pub/CPAN/
                                       http://mirror.cc.columbia.edu/pub/software/cpan/
                                       ftp://mirror.cc.columbia.edu/pub/software/cpan/
                                       http://cpan.belfry.net/
                                       http://cpan.erlbaum.net/
                                       ftp://cpan.erlbaum.net/CPAN/
                                       http://cpan.hexten.net/
                                       ftp://cpan.hexten.net/
                                       http://ftp.fxcorporate.com/CPAN/
                                       ftp://ftp.fxcorporate.com/pub/CPAN/
                                       ftp://mirror.nyi.net/CPAN/
                                       http://mirror.rit.edu/CPAN/
                                       ftp://mirror.rit.edu/CPAN/

         North Carolina
                                       http://www.ibiblio.org/pub/mirrors/CPAN
                                       ftp://ftp.ncsu.edu/pub/mirror/CPAN/

         Oregon
                                       http://ftp.osuosl.org/pub/CPAN/
                                       ftp://ftp.osuosl.org/pub/CPAN/

         Pennsylvania
                                       http://ftp.epix.net/CPAN/
                                       ftp://ftp.epix.net/pub/languages/perl/
                                       http://cpan.pair.com/
                                       ftp://cpan.pair.com/pub/CPAN/

         South Carolina
                                       http://cpan.mirror.clemson.edu/

         Tennessee
                                       http://mira.sunsite.utk.edu/CPAN/

         Texas
                                       http://mirror.uta.edu/CPAN

         Utah




perl v5.12.5         Last change: 2014-06-17                   41






Perl Programmers Reference Guide                    PERLMODLIB(1)



                                       http://cpan.cs.utah.edu
                                       ftp://cpan.cs.utah.edu/pub/CPAN/
                                       ftp://mirror.xmission.com/CPAN/

         Virginia
                                       http://cpan-du.viaverio.com/
                                       ftp://cpan-du.viaverio.com/pub/CPAN/
                                       http://perl.secsup.org/
                                       ftp://perl.secsup.org/pub/perl/
                                       ftp://mirror.cogentco.com/pub/CPAN/

         Washington
                                       http://cpan.llarian.net/
                                       ftp://cpan.llarian.net/pub/CPAN/
                                       ftp://ftp-mirror.internap.com/pub/CPAN/

         Wisconsin
                                       http://cpan.mirrors.tds.net
                                       ftp://cpan.mirrors.tds.net/pub/CPAN
                                       http://mirror.sit.wisc.edu/pub/CPAN/
                                       ftp://mirror.sit.wisc.edu/pub/CPAN/

  Oceania
     Australia
                               http://mirror.internode.on.net/pub/cpan/
                               ftp://mirror.internode.on.net/pub/cpan/
                               http://cpan.mirror.aussiehq.net.au/
                               http://mirror.as24220.net/cpan/
                               ftp://mirror.as24220.net/cpan/

     New Zealand
                               ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
                               http://cpan.inspire.net.nz
                               ftp://cpan.inspire.net.nz/cpan
                               http://cpan.catalyst.net.nz/CPAN/
                               ftp://cpan.catalyst.net.nz/pub/CPAN/

  South America
     Argentina
                               http://cpan.patan.com.ar/
                               http://cpan.localhost.net.ar
                               ftp://mirrors.localhost.net.ar/pub/mirrors/CPAN

     Brazil
                               ftp://cpan.pop-mg.com.br/pub/CPAN/
                               http://ftp.pucpr.br/CPAN
                               ftp://ftp.pucpr.br/CPAN
                               http://cpan.kinghost.net/
                               ftp://ftp.linorg.usp.br/CPAN

     Chile




perl v5.12.5         Last change: 2014-06-17                   42






Perl Programmers Reference Guide                    PERLMODLIB(1)



                               http://cpan.dcc.uchile.cl/
                               ftp://cpan.dcc.uchile.cl/pub/lang/cpan/

     Colombia
                               http://www.laqee.unal.edu.co/CPAN/

  RSYNC Mirrors
                           mirror.as24220.net::cpan
                           cpan.inode.at::CPAN
                           gd.tuwien.ac.at::CPAN
                           ftp.belnet.be::packages/cpan
                           rsync.linorg.usp.br::CPAN
                           rsync.arcticnetwork.ca::CPAN
                           CPAN.mirror.rafal.ca::CPAN
                           mirror.csclub.uwaterloo.ca::CPAN
                           theoryx5.uwinnipeg.ca::CPAN
                           www.laqee.unal.edu.co::CPAN
                           mirror.uni-c.dk::CPAN
                           rsync.nic.funet.fi::CPAN
                           rsync://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/
                           mir1.ovh.net::CPAN
                           miroir-francais.fr::cpan
                           ftp.crihan.fr::CPAN
                           rsync://mirror.cict.fr/cpan/
                           rsync://mirror.netcologne.de/cpan/
                           ftp-stud.hs-esslingen.de::CPAN/
                           ftp.gwdg.de::FTP/languages/perl/CPAN/
                           cpan.mirror.iphh.net::CPAN
                           cpan.cpantesters.org::cpan
                           cpan.hu::CPAN
                           komo.vlsm.org::CPAN
                           mirror.unej.ac.id::cpan
                           ftp.esat.net::/pub/languages/perl/CPAN
                           ftp.heanet.ie::mirrors/ftp.perl.org/pub/CPAN
                           rsync.panu.it::CPAN
                           cpan.fastbull.org::CPAN
                           ftp.kddilabs.jp::cpan
                           ftp.nara.wide.ad.jp::cpan/
                           rsync://ftp.jaist.ac.jp/pub/CPAN/
                           rsync://ftp.riken.jp/cpan/
                           mirror.linuxiso.kz::CPAN
                           rsync://mirrors3.kernel.org/mirrors/CPAN/
                           rsync://rsync.osmirror.nl/cpan/
                           mirror.leaseweb.com::CPAN
                           cpan.nautile.nc::CPAN
                           mirror.icis.pcz.pl::CPAN
                           piotrkosoft.net::mirrors/CPAN
                           rsync://cpan.perl.pt/
                           ftp.kaist.ac.kr::cpan
                           cpan.sarang.net::CPAN
                           mirror.averse.net::cpan
                           rsync.oss.eznetsols.org



perl v5.12.5         Last change: 2014-06-17                   43






Perl Programmers Reference Guide                    PERLMODLIB(1)



                           mirror.ac.za::cpan
                           ftp.is.co.za::IS-Mirror/ftp.cpan.org/
                           rsync://ftp.gui.uva.es/cpan/
                           rsync://mirrors4.kernel.org/mirrors/CPAN/
                           ftp.solnet.ch::CPAN
                           ftp.ulak.net.tr::CPAN
                           gafol.net::cpan
                           rsync.mirrorservice.org::ftp.funet.fi/pub/
                           rsync://rsync.mirror.8086.net/CPAN/
                           rsync.mirror.anlx.net::CPAN
                           mirror.bytemark.co.uk::CPAN
                           ftp.plig.net::CPAN
                           rsync://ftp.ticklers.org:CPAN/
                           mirrors.ibiblio.org::CPAN
                           cpan-du.viaverio.com::CPAN
                           mirror.hiwaay.net::CPAN
                           rsync://mira.sunsite.utk.edu/CPAN/
                           cpan.mirrors.tds.net::CPAN
                           mirror.its.uidaho.edu::cpan
                           rsync://mirror.cc.columbia.edu::cpan/
                           ftp.fxcorporate.com::CPAN
                           rsync.atlantic.net::CPAN
                           mirrors.kernel.org::mirrors/CPAN
                           rsync://mirrors2.kernel.org/mirrors/CPAN/
                           cpan.pair.com::CPAN
                           rsync://mirror.rit.edu/CPAN/
                           rsync://mirror.facebook.net/cpan/
                           rsync://mirrors1.kernel.org/mirrors/CPAN/
                           cpan-sj.viaverio.com::CPAN

     For an up-to-date listing of CPAN sites, see
     http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .

Modules: Creation, Use, and Abuse
     (The following section is borrowed directly from Tim Bunce's
     modules file, available at your nearest CPAN site.)

     Perl implements a class using a package, but the presence of
     a package doesn't imply the presence of a class.  A package
     is just a namespace.  A class is a package that provides
     subroutines that can be used as methods.  A method is just a
     subroutine that expects, as its first argument, either the
     name of a package (for "static" methods), or a reference to
     something (for "virtual" methods).

     A module is a file that (by convention) provides a class of
     the same name (sans the .pm), plus an import method in that
     class that can be called to fetch exported symbols.  This
     module may implement some of its methods by loading dynamic
     C or C++ objects, but that should be totally transparent to
     the user of the module.  Likewise, the module might set up
     an AUTOLOAD function to slurp in subroutine definitions on



perl v5.12.5         Last change: 2014-06-17                   44






Perl Programmers Reference Guide                    PERLMODLIB(1)



     demand, but this is also transparent.  Only the .pm file is
     required to exist.  See perlsub, perltoot, and AutoLoader
     for details about the AUTOLOAD mechanism.

  Guidelines for Module Creation
     o   Do similar modules already exist in some form?

         If so, please try to reuse the existing modules either
         in whole or by inheriting useful features into a new
         class.  If this is not practical try to get together
         with the module authors to work on extending or
         enhancing the functionality of the existing modules.  A
         perfect example is the plethora of packages in perl4 for
         dealing with command line options.

         If you are writing a module to expand an already
         existing set of modules, please coordinate with the
         author of the package.  It helps if you follow the same
         naming scheme and module interaction scheme as the
         original author.

     o   Try to design the new module to be easy to extend and
         reuse.

         Try to "use warnings;" (or "use warnings qw(...);").
         Remember that you can add "no warnings qw(...);" to
         individual blocks of code that need less warnings.

         Use blessed references.  Use the two argument form of
         bless to bless into the class name given as the first
         parameter of the constructor, e.g.,:

          sub new {
              my $class = shift;
              return bless {}, $class;
          }

         or even this if you'd like it to be used as either a
         static or a virtual method.

          sub new {
              my $self  = shift;
              my $class = ref($self) || $self;
              return bless {}, $class;
          }

         Pass arrays as references so more parameters can be
         added later (it's also faster).  Convert functions into
         methods where appropriate.  Split large methods into
         smaller more flexible ones.  Inherit methods from other
         modules if appropriate.




perl v5.12.5         Last change: 2014-06-17                   45






Perl Programmers Reference Guide                    PERLMODLIB(1)



         Avoid class name tests like: "die "Invalid" unless ref
         $ref eq 'FOO'".  Generally you can delete the "eq 'FOO'"
         part with no harm at all.  Let the objects look after
         themselves! Generally, avoid hard-wired class names as
         far as possible.

         Avoid "$r->Class::func()" where using "@ISA=qw(... Class
         ...)" and "$r->func()" would work (see perlbot for more
         details).

         Use autosplit so little used or newly added functions
         won't be a burden to programs that don't use them. Add
         test functions to the module after __END__ either using
         AutoSplit or by saying:

          eval join('',<main::DATA>) || die $@ unless caller();

         Does your module pass the 'empty subclass' test? If you
         say "@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:  "$obj = YOURCLASS->new();" into:
         "$obj = SUBCLASS->new();" ?

         Avoid keeping any state information in your packages. It
         makes it difficult for multiple other packages to use
         yours. Keep state information in objects.

         Always use -w.

         Try to "use strict;" (or "use strict qw(...);").
         Remember that you can add "no strict qw(...);" to
         individual blocks of code that need less strictness.

         Always use -w.

         Follow the guidelines in perlstyle.

         Always use -w.

     o   Some simple style guidelines

         The perlstyle manual supplied with Perl has many helpful
         points.

         Coding style is a matter of personal taste. Many people
         evolve their style over several years as they learn what
         helps them write and maintain good code.  Here's one set
         of assorted suggestions that seem to be widely used by
         experienced developers:

         Use underscores to separate words.  It is generally



perl v5.12.5         Last change: 2014-06-17                   46






Perl Programmers Reference Guide                    PERLMODLIB(1)



         easier to read $var_names_like_this than
         $VarNamesLikeThis, especially for non-native speakers of
         English. It's also a simple rule that works consistently
         with VAR_NAMES_LIKE_THIS.

         Package/Module names are an exception to this rule. Perl
         informally reserves lowercase module names for 'pragma'
         modules like integer and strict. Other modules normally
         begin with a capital letter and use mixed case with no
         underscores (need to be short and portable).

         You may find it helpful to use letter case to indicate
         the scope or nature of a variable. For example:

          $ALL_CAPS_HERE   constants only (beware clashes with Perl vars)
          $Some_Caps_Here  package-wide global/static
          $no_caps_here    function scope my() or local() variables

         Function and method names seem to work best as all
         lowercase.  e.g., "$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.

     o   Select what to export.

         Do NOT export method names!

         Do NOT export anything else by default without a good
         reason!

         Exports pollute the namespace of the module user.  If
         you must export try to use @EXPORT_OK in preference to
         @EXPORT and avoid short or common names to reduce the
         risk of name clashes.

         Generally anything not exported is still accessible from
         outside the module using the ModuleName::item_name (or
         "$blessed_ref->method") syntax.  By convention you can
         use a leading underscore on names to indicate informally
         that they are 'internal' and not for public use.

         (It is actually possible to get private functions by
         saying: "my $subref = sub { ... };  &$subref;".  But
         there's no way to call that directly as a method,
         because a method must have a name in the symbol table.)

         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.



perl v5.12.5         Last change: 2014-06-17                   47






Perl Programmers Reference Guide                    PERLMODLIB(1)



     o   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 more whole words.  Generally
         the name should reflect what is special about what the
         module does rather than how it does it.  Please use
         nested module names to group informally or categorize a
         module.  There should be a very good reason for a module
         not to have a nested name.  Module names should begin
         with a capital letter.

         Having 57 modules all called Sort will not make life
         easy for anyone (though having 23 called Sort::Quick is
         only marginally better :-).  Imagine someone trying to
         install your module alongside many others.  If in any
         doubt ask for suggestions in comp.lang.perl.misc.

         If you are developing a suite of related modules/classes
         it's good practice to use nested classes with a common
         prefix as this will avoid namespace clashes. For
         example: Xyz::Control, Xyz::View, Xyz::Model etc. Use
         the modules in this list as a naming guide.

         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.

     o   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 you picked the most appropriate
         name? Do you have any questions?

         The best way to know for sure, and pick up many helpful
         suggestions, is to ask someone who knows.
         Comp.lang.perl.misc is read by just about all the people
         who develop modules and it's the best place to ask.



perl v5.12.5         Last change: 2014-06-17                   48






Perl Programmers Reference Guide                    PERLMODLIB(1)



         All you need to do is post a short summary of the
         module, its purpose and interfaces. A few lines on each
         of the main methods is probably enough. (If you post the
         whole module it might be ignored by busy people -
         generally the very people you want to read it!)

         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!

     o   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 your software and there is not
         enough time to write the full documentation please at
         least provide a README file containing:

         o         A description of the module/package/extension
                   etc.

         o         A copyright notice - see below.

         o         Prerequisites - what else you may need to
                   have.

         o         How to build it - possible changes to
                   Makefile.PL etc.

         o         How to install it.

         o         Recent changes in this release, especially
                   incompatibilities

         o         Changes / enhancements you plan to make in the
                   future.

         If the README file seems to be getting too large you may
         wish to split out some of the sections into separate
         files: INSTALL, Copying, ToDo etc.

         o   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, or perlgpl



perl v5.12.5         Last change: 2014-06-17                   49






Perl Programmers Reference Guide                    PERLMODLIB(1)



             and perlartistic).  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:

              Copyright (c) 1995 Your Name. All rights reserved.
              This program is free software; you can redistribute it and/or
              modify it under the same terms as Perl itself.

             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.

         o   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 variable called
             $VERSION.  This should be a floating point number
             with at least two digits after the decimal (i.e.,
             hundredths, e.g, "$VERSION = "0.01"").  Don't use a
             "1.3.2" style version.  See Exporter for details.

             It may be handy to add a function or method to
             retrieve the number.  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.

         o   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 Usenet
             newsgroup.  This will at least ensure very wide
             once-off distribution.

             If possible, register the module with CPAN.  You
             should include details of its location in your
             announcement.

             Some notes about ftp archives: Please use a long
             descriptive file name that includes the version
             number. Most incoming directories will not be
             readable/listable, i.e., you won't be able to see
             your file after uploading it. Remember to send your
             email notification message as soon as possible after
             uploading else your file may get deleted
             automatically. Allow time for the file to be



perl v5.12.5         Last change: 2014-06-17                   50






Perl Programmers Reference Guide                    PERLMODLIB(1)



             processed and/or check the file has been processed
             before announcing its location.

             FTP Archives for Perl Modules:

             Follow the instructions and links on:

                http://www.cpan.org/modules/00modlist.long.html
                http://www.cpan.org/modules/04pause.html

             or upload to one of these sites:

                https://pause.kbx.de/pause/
                http://pause.perl.org/

             and notify <modules@perl.org>.

             By using the WWW interface you can ask the Upload
             Server to mirror your modules from your ftp or WWW
             site into your own directory on CPAN!

             Please remember to send me an updated entry for the
             Module list!

         o   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 old behavior if people rely on it.
             Document incompatible changes.

  Guidelines for Converting Perl 4 Library Scripts into Modules

     o   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.

     o   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?

     o   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



perl v5.12.5         Last change: 2014-06-17                   51






Perl Programmers Reference Guide                    PERLMODLIB(1)



         guidelines for module creation above include many of the
         issues you should consider.

     o   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:

         o         Adds the standard Module prologue lines

         o         Converts package specifiers from ' to ::

         o         Converts die(...) to croak(...)

         o         Several other minor changes

         Being a mechanical process pl2pm is not bullet proof.
         The converted code will need careful checking,
         especially any package statements.  Don't delete the
         original .pl file till the new .pm one works!

  Guidelines for Reusing Application Code
     o   Complete applications rarely belong in the Perl Module
         Library.

     o   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.

     o   Break-out the reusable code into one or more separate
         module files.

     o   Take the opportunity to reconsider and redesign the
         interfaces.

     o   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:

              % perl -e 'use Module::Name; method(@ARGV)' ...
         or
              % perl -mModule::Name ...    (in perl5.002 or higher)

NOTE
     Perl does not enforce private and public parts of its
     modules as you may have been used to in other languages like
     C++, Ada, or Modula-17.  Perl doesn't have an infatuation



perl v5.12.5         Last change: 2014-06-17                   52






Perl Programmers Reference Guide                    PERLMODLIB(1)



     with enforced privacy.  It would prefer that you stayed out
     of its living room because you weren't invited, not because
     it has a shotgun.

     The module and its user have a contract, part of which is
     common law, and part of which is "written".  Part of the
     common law contract is that a module doesn't pollute any
     namespace it wasn't asked to.  The written contract for the
     module (A.K.A. documentation) may make other provisions.
     But then you know when you "use RedefineTheWorld" that
     you're redefining the world and willing to take the
     consequences.

POD ERRORS
     Hey! The above document had some coding errors, which are
     explained below:

     Around line 3396:
         You forgot a '=back' before '=head2'

     Around line 3494:
         =back without =over



ATTRIBUTES
     See attributes(5) for descriptions of the following
     attributes:

     +---------------+------------------+
     |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
     +---------------+------------------+
     |Availability   | runtime/perl-512 |
     +---------------+------------------+
     |Stability      | Uncommitted      |
     +---------------+------------------+
NOTES
     This software was built from source available at
     https://java.net/projects/solaris-userland.  The original
     community source was downloaded from
     http://www.cpan.org/src/5.0/perl-5.12.5.tar.bz2

     Further information about this software can be found on the
     open source community website at http://www.perl.org/.











perl v5.12.5         Last change: 2014-06-17                   53