perlmodlib man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

PERLMODLIB(1)	 Perl Programmers Reference Guide   PERLMODLIB(1)

NAME
       perlmodlib - constructing new Perl modules and finding
       existing ones

DESCRIPTION
THE PERL MODULE LIBRARY
       Many modules are included the Perl distribution.	 These
       are described below, and all end in .pm.	 You may discover
       compiled library file (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 sup
       plied 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 pro
       cess 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 cur
       rent 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 doc
       umentation).

       attributes  Get/set subroutine or variable attributes

       attrs	   Set/get attributes of a subroutine (depre
		   cated)

       autouse	   Postpone load of modules until a function is
		   used

       base	   Establish IS-A relationship with base class at
		   compile time

       blib	   Use MakeMaker's uninstalled version of a pack
		   age

       bytes	   Force byte semantics rather than character
		   semantics

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

       constant	   Declare constants

       diagnostics Perl compiler pragma to force verbose warning
		   diagnostics

       fields	   Compile-time class fields

       filetest	   Control the filetest permission operators

       integer	   Use integer arithmetic instead of floating
		   point

       less	   Request less of something from the compiler

       lib	   Manipulate @INC at compile time

       locale	   Use and avoid POSIX locales for built-in oper
		   ations

       open	   Set default disciplines for input and output

       ops	   Restrict unsafe operations when compiling

       overload	   Package for overloading perl operations

       re	   Alter regular expression behaviour

       sigtrap	   Enable simple signal handling

       strict	   Restrict unsafe constructs

       subs	   Predeclare sub names

       utf8	   Enable/disable UTF-8 in source code

       vars	   Predeclare global variable names (obsolete)

       warnings	   Control optional warnings

       warnings::register
		   Warnings import function

       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 docu
       mentation for details.

       AnyDBM_File Provide framework for multiple DBMs

       AutoLoader  Load subroutines only on demand

       AutoSplit   Split a package for autoloading

       B	   The Perl Compiler

       B::Asmdata  Autogenerated data about Perl ops, used to
		   generate bytecode

       B::Assembler
		   Assemble Perl bytecode

       B::Bblock   Walk basic blocks

       B::Bytecode Perl compiler's bytecode backend

       B::C	   Perl compiler's C backend

       B::CC	   Perl compiler's optimized C translation back
		   end

       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

       B::Disassembler
		   Disassemble Perl bytecode

       B::Lint	   Perl lint

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

       B::Stackobj Helper module for CC backend

       B::Stash	   Show what stashes are loaded

       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

       ByteLoader  Load byte compiled perl code

       CGI	   Simple Common Gateway Interface Class

       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 Netscape 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

       CPAN	   Query, download and build perl modules from
		   CPAN sites

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

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

       Carp	   Warn of errors (from perspective of caller)

       Carp::Heavy Carp guts

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

       Cwd	   Get pathname of current working directory

       DB	   Programmatic interface to the Perl debugging
		   API (draft, subject to

       DB_File	   Perl5 access to Berkeley DB version 1.x

       Devel::SelfStubber
		   Generate stubs for a SelfLoading module

       DirHandle   Supply object methods for directory handles

       Dumpvalue   Provides screen dump of Perl data.

       English	   Use nice English (or awk) names for ugly punc
		   tuation variables

       Env	   Perl module that imports environment variables
		   as scalars or arrays

       Exporter	   Implements default import method for modules

       Exporter::Heavy
		   Exporter guts

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

       ExtUtils::Embed
		   Utilities for embedding Perl in C/C++ applica
		   tions

       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_Cygwin
		   Methods to override UN*X behaviour in ExtU
		   tils::MakeMaker

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

       ExtUtils::MM_Unix
		   Methods used by ExtUtils::MakeMaker

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

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

       ExtUtils::MakeMaker
		   Create an extension Makefile

       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 exten
		   sion

       ExtUtils::Packlist
		   Manage .packlist files

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

       Fatal	   Replace functions with equivalents which suc
		   ceed or die

       Fcntl	   Load the C Fcntl.h defines

       File::Basename
		   Split a pathname into pieces

       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::Find  Traverse a file tree

       File::Path  Create or remove directory trees

       File::Spec  Portably perform operations on file names

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

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

       File::Spec::Mac
		   File::Spec for MacOS

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

       File::Spec::Unix
		   Methods used by File::Spec

       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

       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

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

       IO	   Load various IO modules

       IPC::Open2  Open a process for both reading and writing

       IPC::Open3  Open a process for reading, writing, and error
		   handling

       Math::BigFloat
		   Arbitrary length float math package

       Math::BigInt
		   Arbitrary size integer math package

       Math::Complex
		   Complex numbers and associated mathematical
		   functions

       Math::Trig  Trigonometric functions

       Net::Ping   Check a remote host for reachability

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

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

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

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

       O	   Generic interface to Perl Compiler backends

       Opcode	   Disable named opcodes when compiling perl code

       POSIX	   Perl interface to IEEE Std 1003.1

       Pod::Checker
		   Check pod documents for syntax errors

       Pod::Find   Find POD documents in directory trees

       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::ParseUtils
		   Helpers for POD parsing and conversion

       Pod::Parser Base class for creating POD filters and trans
		   lators

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

       Pod::Select Extract selected sections of POD from input

       Pod::Text   Convert POD data to formatted ASCII text

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

       Pod::Text::Overstrike
		   Convert POD data to formatted overstrike text

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

       Pod::Usage  Print a usage message from embedded pod docu
		   mentation

       SDBM_File   Tied access to sdbm files

       Safe	   Compile and execute code in restricted com
		   partments

       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

       Symbol	   Manipulate Perl symbols and their names

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

       Test	   Provides a simple framework for writing test
		   scripts

       Test::Harness
		   Run perl standard test scripts with statistics

       Text::Abbrev
		   Create an abbreviation table from a list

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

       Text::Soundex
		   Implementation of the Soundex Algorithm as
		   Described by Knuth

       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 (EXPERIMENTAL, sub
		   ject to change)

       Thread::Queue
		   Thread-safe queues

       Thread::Semaphore
		   Thread-safe semaphores

       Thread::Signal
		   Start a thread which runs signal handlers
		   reliably

       Thread::Specific
		   Thread-specific keys

       Tie::Array  Base class for tied arrays

       Tie::Handle Base class definitions for tied handles

       Tie::Hash   Base class definitions for tied hashes

       Tie::RefHash
		   Use references as hash keys

       Tie::Scalar Base class definitions for tied scalars

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

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

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

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

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

       UNIVERSAL   Base class for ALL classes (blessed refer
		   ences)

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

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

       Win32	   Interfaces to some Win32 API Functions

       To find out all modules installed on your system, includ
       ing those without documentation or outside the standard
       release, just do this:

	   % find `perl -e 'print "@INC"'` -name '*.pm' -print

       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 pro
       gram 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 man
       path.  See the perl manpage for details.	 If you have no
       system man command, you might try the perldoc program.

       Extension Modules

       Extension modules are written in C (or a mix of Perl and
       C).  They are usually dynamically loaded into Perl if and
       when you need them, but may also be be linked in stati
       cally.  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 Deja News.

CPAN
       CPAN stands for Comprehensive Perl Archive Network; it's a
       globally replicated trove of Perl materials, including
       documentation, style guides, tricks and traps, alternate
       ports to non-Unix systems and occasional binary distribu
       tions for these.	  Search engines for CPAN can be found at
       http://cpan.perl.com/ and at http://theory.uwin
       nipeg.ca/mod_perl/cpan-search.pl .

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

	  Language Extensions and Documentation Tools

	  Development Support

	  Operating System Interfaces

	  Networking, Device Control (modems) and InterProcess
	   Communication

	  Data Types and Data Type Utilities

	  Database Interfaces

	  User Interfaces

	  Interfaces to / Emulations of Other Programming Lan
	   guages

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

	  String Processing, Language Text Processing, Parsing,
	   and Searching

	  Option, Argument, Parameter, and Configuration File
	   Processing

	  Internationalization and Locale

	  Authentication, Security, and Encryption

	  World Wide Web, HTML, HTTP, CGI, MIME

	  Server and Daemon Utilities

	  Archiving and Compression

	  Images, Pixmap and Bitmap Manipulation, Drawing, and
	   Graphing

	  Mail and Usenet News

	  Control Flow Utilities (callbacks and exceptions etc)

	  File Handle and Input/Output Stream Utilities

	  Miscellaneous Modules

       Registered CPAN sites as of this writing include the fol
       lowing.	You should try to choose one close to you:

       Africa

	  South Africa

	       ftp://ftp.is.co.za/programming/perl/CPAN/
	       ftp://ftp.saix.net/pub/CPAN/
	       ftp://ftpza.co.za/pub/mirrors/cpan/
	       ftp://ftp.sun.ac.za/CPAN/

       Asia

	  China

	       ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
	       http://www2.linuxforum.net/mirror/CPAN/
	       http://cpan.shellhung.org/
	       ftp://ftp.shellhung.org/pub/CPAN

	  Hong Kong

	       http://CPAN.pacific.net.hk/
	       ftp://ftp.pacific.net.hk/pub/mirror/CPAN/

	  Indonesia

	       http://piksi.itb.ac.id/CPAN/
	       ftp://mirrors.piksi.itb.ac.id/CPAN/
	       http://CPAN.mweb.co.id/
	       ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/

	  Israel

	       http://www.iglu.org.il:/pub/CPAN/
	       ftp://ftp.iglu.org.il/pub/CPAN/
	       http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
	       ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/

	  Japan

	       ftp://ftp.u-aizu.ac.jp/pub/lang/perl/CPAN/
	       ftp://ftp.kddlabs.co.jp/CPAN/
	       http://mirror.nucba.ac.jp/mirror/Perl/
	       ftp://mirror.nucba.ac.jp/mirror/Perl/
	       ftp://ftp.meisei-u.ac.jp/pub/CPAN/
	       ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
	       ftp://ftp.dti.ad.jp/pub/lang/CPAN/
	       ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/

	  Saudi Arabia

	       ftp://ftp.isu.net.sa/pub/CPAN/

	  Singapore

	       http://cpan.hjc.edu.sg
	       http://ftp.nus.edu.sg/unix/perl/CPAN/
	       ftp://ftp.nus.edu.sg/pub/unix/perl/CPAN/

	  South Korea

	       http://CPAN.bora.net/
	       ftp://ftp.bora.net/pub/CPAN/
	       http://ftp.kornet.net/CPAN/
	       ftp://ftp.kornet.net/pub/CPAN/
	       ftp://ftp.nuri.net/pub/CPAN/

	  Taiwan

	       ftp://coda.nctu.edu.tw/UNIX/perl/CPAN
	       ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
	       ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/

	  Thailand

	       http://download.nectec.or.th/CPAN/
	       ftp://ftp.nectec.or.th/pub/languages/CPAN/
	       ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/

       Central America

	  Costa Rica

	       ftp://ftp.linux.co.cr/mirrors/CPAN/
	       http://ftp.ucr.ac.cr/Unix/CPAN/
	       ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/

       Europe

	  Austria

	       ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/

	  Belgium

	       http://ftp.easynet.be/CPAN/
	       ftp://ftp.easynet.be/CPAN/
	       ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/

	  Bulgaria

	       ftp://ftp.ntrl.net/pub/mirrors/CPAN/

	  Croatia

	       ftp://ftp.linux.hr/pub/CPAN/

	  Czech Republic

	       http://www.fi.muni.cz/pub/perl/
	       ftp://ftp.fi.muni.cz/pub/perl/
	       ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/

	  Denmark

	       ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
	       http://www.cpan.dk/CPAN/
	       ftp://www.cpan.dk/ftp.cpan.org/CPAN/

	  England

	       http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
	       ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
	       ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
	       ftp://ftp.flirble.org/pub/languages/perl/CPAN/
	       ftp://ftp.plig.org/pub/CPAN/
	       ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
	       http://mirror.uklinux.net/CPAN/
	       ftp://mirror.uklinux.net/pub/CPAN/
	       ftp://usit.shef.ac.uk/pub/packages/CPAN/

	  Estonia

	       ftp://ftp.ut.ee/pub/languages/perl/CPAN/

	  Finland

	       ftp://ftp.funet.fi/pub/languages/perl/CPAN/

	  France

	       ftp://cpan.ftp.worldonline.fr/pub/CPAN/
	       ftp://ftp.club-internet.fr/pub/perl/CPAN/
	       ftp://ftp.lip6.fr/pub/perl/CPAN/
	       ftp://ftp.oleane.net/pub/mirrors/CPAN/
	       ftp://ftp.pasteur.fr/pub/computing/CPAN/
	       ftp://cpan.cict.fr/pub/CPAN/
	       ftp://ftp.uvsq.fr/pub/perl/CPAN/

	  Germany

	       ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
	       ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
	       ftp://ftp.uni-erlangen.de/pub/source/CPAN/
	       ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
	       ftp://ftp.gigabell.net/pub/CPAN/
	       http://ftp.gwdg.de/pub/languages/perl/CPAN/
	       ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
	       ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
	       ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/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/

	  Hungary

	       http://cpan.artifact.hu/
	       ftp://cpan.artifact.hu/CPAN/
	       ftp://ftp.kfki.hu/pub/packages/perl/CPAN/

	  Iceland

	       http://cpan.gm.is/
	       ftp://ftp.gm.is/pub/CPAN/

	  Ireland

	       http://cpan.indigo.ie/
	       ftp://cpan.indigo.ie/pub/CPAN/
	       http://sunsite.compapp.dcu.ie/pub/perl/
	       ftp://sunsite.compapp.dcu.ie/pub/perl/

	  Italy

	       http://cpan.nettuno.it/
	       http://gusp.dyndns.org/CPAN/
	       ftp://gusp.dyndns.org/pub/CPAN
	       http://softcity.iol.it/cpan
	       ftp://softcity.iol.it/pub/cpan
	       ftp://ftp.unina.it/pub/Other/CPAN/
	       ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
	       ftp://cis.uniRoma2.it/CPAN/
	       ftp://ftp.edisontel.it/pub/CPAN_Mirror/
	       ftp://ftp.flashnet.it/pub/CPAN/

	  Latvia

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

	  Netherlands

	       ftp://download.xs4all.nl/pub/mirror/CPAN/
	       ftp://ftp.nl.uu.net/pub/CPAN/
	       ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
	       ftp://ftp.cpan.nl/pub/CPAN/
	       http://www.cs.uu.nl/mirror/CPAN/
	       ftp://ftp.cs.uu.nl/mirror/CPAN/

	  Norway

	       ftp://sunsite.uio.no/pub/languages/perl/CPAN/
	       ftp://ftp.uit.no/pub/languages/perl/cpan/

	  Poland

	       ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
	       ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
	       ftp://ftp.man.torun.pl/pub/doc/CPAN/
	       ftp://sunsite.icm.edu.pl/pub/CPAN/

	  Portugal

	       ftp://ftp.ua.pt/pub/CPAN/
	       ftp://perl.di.uminho.pt/pub/CPAN/
	       ftp://ftp.ist.utl.pt/pub/CPAN/
	       ftp://ftp.netc.pt/pub/CPAN/

	  Romania

	       ftp://archive.logicnet.ro/mirrors/ftp.cpan.org/CPAN/
	       ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
	       ftp://ftp.dntis.ro/pub/cpan/
	       ftp://ftp.opsynet.com/cpan/
	       ftp://ftp.dnttm.ro/pub/CPAN/
	       ftp://ftp.timisoara.roedu.net/mirrors/CPAN/

	  Russia

	       ftp://ftp.chg.ru/pub/lang/perl/CPAN/
	       http://cpan.rinet.ru/
	       ftp://cpan.rinet.ru/pub/mirror/CPAN/
	       ftp://ftp.aha.ru/pub/CPAN/
	       ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/

	  Slovakia

	       ftp://ftp.entry.sk/pub/languages/perl/CPAN/

	  Slovenia

	       ftp://ftp.arnes.si/software/perl/CPAN/

	  Spain

	       ftp://ftp.rediris.es/mirror/CPAN/
	       ftp://ftp.etse.urv.es/pub/perl/

	  Sweden

	       http://ftp.du.se/CPAN/
	       ftp://ftp.du.se/pub/CPAN/
	       ftp://ftp.sunet.se/pub/lang/perl/CPAN/

	  Switzerland

	       ftp://ftp.danyk.ch/CPAN/
	       ftp://sunsite.cnlab-switch.ch/mirror/CPAN/

	  Turkey

	       ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/

       North America

	  Canada

		  Alberta

		       http://sunsite.ualberta.ca/pub/Mirror/CPAN/
		       ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/

		  Manitoba

		       http://theoryx5.uwinnipeg.ca/pub/CPAN/
		       ftp://theoryx5.uwinnipeg.ca/pub/CPAN/

		  Nova Scotia

		       ftp://cpan.chebucto.ns.ca/pub/CPAN/

		  Ontario

		       ftp://ftp.crc.ca/pub/packages/lang/perl/CPAN/

		  Mexico

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

	  United States

		  Alabama

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

		  California

		       http://www.cpan.org/
		       ftp://ftp.cpan.org/CPAN/
		       ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
		       ftp://ftp.digital.com/pub/plan/perl/CPAN/
		       http://www.kernel.org/pub/mirrors/cpan/
		       ftp://ftp.kernel.org/pub/mirrors/cpan/
		       http://www.perl.com/CPAN/
		       http://download.sourceforge.net/mirrors/CPAN/

		  Colorado

		       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/

		  Florida

		       ftp://ftp.cise.ufl.edu/pub/perl/CPAN/

		  Georgia

		       ftp://ftp.twoguys.org/CPAN/

		  Illinois

		       http://www.neurogames.com/mirrors/CPAN
		       http://uiarchive.uiuc.edu/mirrors/ftp/ftp.cpan.org/pub/CPAN/
		       ftp://uiarchive.uiuc.edu/mirrors/ftp/ftp.cpan.org/pub/CPAN/

		  Indiana

		       ftp://ftp.uwsg.indiana.edu/pub/perl/CPAN/
		       http://cpan.nitco.com/
		       ftp://cpan.nitco.com/pub/CPAN/
		       ftp://cpan.in-span.net/
		       http://csociety-ftp.ecn.purdue.edu/pub/CPAN
		       ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN

		  Kentucky

		       http://cpan.uky.edu/
		       ftp://cpan.uky.edu/pub/CPAN/

		  Massachusetts

		       ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
		       ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/

		  New Jersey

		       ftp://ftp.cpanel.net/pub/CPAN/

		  New York

		       ftp://ftp.freesoftware.com/pub/perl/CPAN/
		       http://www.deao.net/mirrors/CPAN/
		       ftp://ftp.deao.net/pub/CPAN/
		       ftp://ftp.stealth.net/pub/mirrors/ftp.cpan.org/pub/CPAN/
		       http://mirror.nyc.anidea.com/CPAN/
		       ftp://mirror.nyc.anidea.com/pub/CPAN/
		       http://www.rge.com/pub/languages/perl/
		       ftp://ftp.rge.com/pub/languages/perl/
		       ftp://mirrors.cloud9.net/pub/mirrors/CPAN/

		  North Carolina

		       ftp://ftp.duke.edu/pub/perl/

		  Ohio

		       ftp://ftp.loaded.net/pub/CPAN/

		  Oklahoma

		       ftp://ftp.ou.edu/mirrors/CPAN/

		  Oregon

		       ftp://ftp.orst.edu/pub/packages/CPAN/

		  Pennsylvania

		       http://ftp.epix.net/CPAN/
		       ftp://ftp.epix.net/pub/languages/perl/
		       ftp://carroll.cac.psu.edu/pub/CPAN/

		  Tennessee

		       ftp://ftp.sunsite.utk.edu/pub/CPAN/

		  Texas

		       http://ftp.sedl.org/pub/mirrors/CPAN/
		       http://jhcloos.com/pub/mirror/CPAN/
		       ftp://jhcloos.com/pub/mirror/CPAN/

		  Utah

		       ftp://mirror.xmission.com/CPAN/

		  Virginia

		       http://mirrors.rcn.net/pub/lang/CPAN/
		       ftp://mirrors.rcn.net/pub/lang/CPAN/
		       ftp://ruff.cs.jmu.edu/pub/CPAN/
		       http://perl.Liquidation.com/CPAN/

		  Washington

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

       Oceania

	  Australia

	       http://ftp.planetmirror.com/pub/CPAN/
	       ftp://ftp.planetmirror.com/pub/CPAN/
	       ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
	       ftp://cpan.topend.com.au/pub/CPAN/

	  New Zealand

	       ftp://ftp.auckland.ac.nz/pub/perl/CPAN/

       South America

	  Argentina

	       ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/

	  Brazil

	       ftp://cpan.pop-mg.com.br/pub/CPAN/
	       ftp://ftp.matrix.com.br/pub/perl/
	       ftp://cpan.if.usp.br/pub/mirror/CPAN/

	  Chile

	       ftp://ftp.psinet.cl/pub/programming/perl/CPAN/
	       ftp://sunsite.dcc.uchile.cl/pub/lang/perl/

       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" meth
       ods), 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 mod
       ule might set up an AUTOLOAD function to slurp in subrou
       tine definitions on demand, but this is also transparent.
       Only the .pm file is required to exist.	See the perlsub
       manpage, the perltoot manpage, and the AutoLoader manpage
       for details about the AUTOLOAD mechanism.

       Guidelines for Module Creation

	  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.

	  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.

	   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 the perl
	   bot manpage 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 appli
	   cations should be able to use SUBCLASS in exactly the
	   same way as YOURCLASS.  For example, does your appli
	   cation still work if you change:  "$obj = new YOUR
	   CLASS;" into: "$obj = new SUBCLASS;" ?

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

	   Always use -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 the perlstyle(1) manual.

	   Always use -w.

	  Some simple style guidelines

	   The perlstyle manual supplied with Perl has many help
	   ful points.

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

	   Use underscores to separate words.  It is generally
	   easier to read $var_names_like_this than $VarNames
	   LikeThis, especially for non-native speakers of
	   English. It's also a simple rule that works consis
	   tently 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 mod
	   ules 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.

	  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 Module
	   Name::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.

	  Select a name for the module.

	   This name should be as descriptive, accurate, and com
	   plete 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 mod
	   ules/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 nam
	   ing guide.

	   If adding a new module to a set, follow the original
	   author's standards for naming modules and the inter
	   face to methods in those modules.

	   If developing modules for private internal or project
	   specific use, that will never be released to the pub
	   lic, 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.

	  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 help
	   ful suggestions, is to ask someone who knows.
	   Comp.lang.perl.misc is read by just about all the peo
	   ple who develop modules and it's the best place to
	   ask.

	   All you need to do is post a short summary of the mod
	   ule, 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!

	  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:

		    A description of the module/package/exten
		     sion etc.

		    A copyright notice - see below.

		    Prerequisites - what else you may need to
		     have.

		    How to build it - possible changes to Make
		     file.PL etc.

		    How to install it.

		    Recent changes in this release, especially
		     incompatibilities

		    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 sepa
	   rate files: INSTALL, Copying, ToDo etc.

	   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 oth
	       ers may copy/use/modify your work.

	       Perl, for example, is supplied with two types of
	       licence: The GNU GPL and The Artistic Licence (see
	       the files README, Copying, and Artistic).  Larry
	       has good reasons for NOT just using the GNU GPL.

	       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 Copy
	       right.

	      Give the module a version/issue/release number.

	       To be fully compatible with the Exporter and Make
	       Maker modules you should store your module's ver
	       sion 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 the Exporter manpage
	       for details.

	       It may be handy to add a function or method to
	       retrieve the number.  Use the number in announce
	       ments and archive file names when releasing the
	       module (ModuleName-1.02.tar.Z).	See perldoc ExtU
	       tils::MakeMaker.pm for details.

	      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 possi
	       ble after uploading else your file may get deleted
	       automatically. Allow time for the file to be pro
	       cessed 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/pause/

	       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!

	      Take care when changing a released module.

	       Always strive to remain compatible with previous
	       released versions.  Otherwise try to add a mecha
	       nism to revert to the old behavior if people rely
	       on it.  Document incompatible changes.

       Guidelines for Converting Perl 4 Library Scripts into Mod
       ules

	  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.

	  Consider the implications.

	   All Perl applications that make use of the script will
	   need to be changed (slightly) if the script is con
	   verted into a module.  Is it worth it unless you plan
	   to make other changes at the same time?

	  Make the most of the opportunity.

	   If you are going to convert the script to a module you
	   can use the opportunity to redesign the interface.
	   The guidelines for module creation above include many
	   of the issues you should consider.

	  The pl2pm utility will get you started.

	   This utility will read *.pl files (given as parame
	   ters) and write corresponding *.pm files. The pl2pm
	   utilities does the following:

		    Adds the standard Module prologue lines

		    Converts package specifiers from ' to ::

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

		    Several other minor changes

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

       Guidelines for Reusing Application Code

	  Complete applications rarely belong in the Perl Module
	   Library.

	  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.

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

	  Take the opportunity to reconsider and redesign the
	   interfaces.

	  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 mod
       ules as you may have been used to in other languages like
       C++, Ada, or Modula-17.	Perl doesn't have an infatuation
       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 provi
       sions.  But then you know when you "use RedefineTheWorld"
       that you're redefining the world and willing to take the
       consequences.

2001-03-18		   perl v5.6.1		    PERLMODLIB(1)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net