X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.pod;h=62d249a150022e49ae4f53d39cdced5322b572a3;hb=ec861bc19fa3da942464628dd3e86e9b82994ca4;hp=abfa657f61365580548e059cde491766ecb72fbe;hpb=4438c4b75b842b6c829a7da9841e97abb875b1d8;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.pod b/pod/perlmodlib.pod index abfa657..62d249a 100644 --- a/pod/perlmodlib.pod +++ b/pod/perlmodlib.pod @@ -36,7 +36,7 @@ which lasts until the end of that BLOCK. Some pragmas are lexically scoped--typically those that affect the C<$^H> hints variable. Others affect the current package instead, -like C and C, whic allow you to predeclare a +like C and C, which allow you to predeclare a variables or subroutines within a particular I rather than just a block. Such declarations are effective for the entire file for which they were declared. You cannot rescind them with C string literal escape. + =item constant -declare constants +Declare constants =item diagnostics @@ -72,67 +84,71 @@ Perl compiler pragma to force verbose warning diagnostics =item fields -compile-time class fields +Compile-time class fields =item filetest -control the filetest permission operators +Control the filetest permission operators =item integer -compute arithmetic in integer instead of double +Compute arithmetic in integer instead of double =item less -perl pragma to request less of something from the compiler +Request less of something from the compiler -=item lib +=item locale -manipulate @INC at compile time +Use and avoid POSIX locales for built-in operations -=item locale +=item open -use and avoid POSIX locales for built-in operations +Set default disciplines for input and output =item ops -restrict unsafe operations when compiling +Restrict unsafe operations when compiling =item overload Package for overloading perl operations +=item perlio + +Configure C level IO + =item re -alter regular expression behavior +Alter regular expression behaviour =item sigtrap -enable simple signal handling +Enable simple signal handling =item strict -restrict unsafe constructs +Restrict unsafe constructs =item subs -predeclare sub names +Predeclare sub names =item utf8 -turn on UTF-8 and Unicode support +Enable/disable UTF-8 in source code =item vars -predeclare global variable names +Predeclare global variable names (obsolete) =item warnings -control optional warnings +Control optional warnings -=item vmsish +=item warnings::register -control VMS-specific language features +Warnings import function =back @@ -146,19 +162,19 @@ Exporter module. See their own documentation for details. =item AnyDBM_File -provide framework for multiple DBMs +Provide framework for multiple DBMs =item AutoLoader -load subroutines only on demand +Load subroutines only on demand =item AutoSplit -split a package for autoloading +Split a package for autoloading =item B -The Perl Compiler; See also L. +The Perl Compiler =item B::Asmdata @@ -208,6 +224,10 @@ Show lexical variables used in functions or files Helper module for CC backend +=item B::Stash + +Show what stashes are loaded + =item B::Terse Walk Perl syntax tree, printing terse info about ops @@ -218,7 +238,11 @@ Generates cross reference reports for Perl programs =item Benchmark -benchmark running times of code +Benchmark running times of Perl code + +=item ByteLoader + +Load byte compiled perl code =item CGI @@ -226,7 +250,7 @@ Simple Common Gateway Interface Class =item CGI::Apache -Make things work with CGI.pm against Perl-Apache API +Backward compatibility module for CGI.pm =item CGI::Carp @@ -240,17 +264,21 @@ Interface to Netscape Cookies CGI Interface for Fast CGI +=item CGI::Pretty + +Module to produce nicely formatted HTML code + =item CGI::Push Simple Interface to Server Push =item CGI::Switch -Try more than one constructors and return the first object available +Backward compatibility module for defunct CGI::Switch =item CPAN -query, download and build perl modules from CPAN sites +Query, download and build perl modules from CPAN sites =item CPAN::FirstTime @@ -262,71 +290,59 @@ Wrapper around CPAN.pm without using any XS module =item Carp -warn of errors (from perspective of caller) +Warn of errors (from perspective of caller) =item Class::Struct -declare struct-like datatypes as Perl classes - -=item Config - -access Perl configuration information +Declare struct-like datatypes as Perl classes =item Cwd -get pathname of current working directory +Get pathname of current working directory =item DB -programmatic interface to the Perl debugging API +Programmatic interface to the Perl debugging API (draft, subject to =item DB_File Perl5 access to Berkeley DB version 1.x -=item Data::Dumper - -stringified perl data structures, suitable for both printing and C - -=item Devel::Peek - -A data debugging tool for the XS programmer - =item Devel::SelfStubber -generate stubs for a SelfLoading module +Generate stubs for a SelfLoading module =item DirHandle -supply object methods for directory handles +Supply object methods for directory handles =item Dumpvalue -provides screen dump of Perl data. +Provides screen dump of Perl data. -=item DynaLoader +=item Encode -Dynamically load C libraries into Perl code +Character encodings =item English -use nice English (or awk) names for ugly punctuation variables +Use nice English (or awk) names for ugly punctuation variables =item Env -perl module that imports environment variables - -=item Errno - -System errno constants +Perl module that imports environment variables as scalars or arrays =item Exporter Implements default import method for modules +=item Exporter::Heavy + +Exporter guts + =item ExtUtils::Command -utilities to replace common UNIX commands in Makefiles etc. +Utilities to replace common UNIX commands in Makefiles etc. =item ExtUtils::Embed @@ -334,7 +350,7 @@ Utilities for embedding Perl in C/C++ applications =item ExtUtils::Install -install files from here to there +Install files from here to there =item ExtUtils::Installed @@ -342,63 +358,67 @@ Inventory management of installed modules =item ExtUtils::Liblist -determine libraries to use and how to use them +Determine libraries to use and how to use them + +=item ExtUtils::MM_Cygwin + +Methods to override UN*X behaviour in ExtUtils::MakeMaker =item ExtUtils::MM_OS2 -methods to override UN*X behavior in ExtUtils::MakeMaker +Methods to override UN*X behaviour in ExtUtils::MakeMaker =item ExtUtils::MM_Unix -methods used by ExtUtils::MakeMaker +Methods used by ExtUtils::MakeMaker =item ExtUtils::MM_VMS -methods to override UN*X behavior in ExtUtils::MakeMaker +Methods to override UN*X behaviour in ExtUtils::MakeMaker =item ExtUtils::MM_Win32 -methods to override UN*X behavior in ExtUtils::MakeMaker +Methods to override UN*X behaviour in ExtUtils::MakeMaker =item ExtUtils::MakeMaker -create an extension Makefile +Create an extension Makefile =item ExtUtils::Manifest -utilities to write and check a MANIFEST file - -=item ExtUtils::Miniperl - -write the C code for perlmain.c +Utilities to write and check a MANIFEST file =item ExtUtils::Mkbootstrap -make a bootstrap file for use by DynaLoader +Make a bootstrap file for use by DynaLoader =item ExtUtils::Mksymlists -write linker options files for dynamic extension +Write linker options files for dynamic extension =item ExtUtils::Packlist -manage .packlist files +Manage .packlist files =item ExtUtils::testlib -add blib/* directories to @INC +Add blib/* directories to @INC =item Fatal -replace functions with equivalents which succeed or die +Replace functions with equivalents which succeed or die =item Fcntl -load the C Fcntl.h defines +Load the C Fcntl.h defines =item File::Basename -split a pathname into pieces +Split a pathname into pieces + +=item File::CheckTree + +Run many filetest checks on a tree =item File::Compare @@ -414,19 +434,23 @@ DOS like globbing and then some =item File::Find -traverse a file tree +Traverse a file tree =item File::Path -create or remove a series of directories +Create or remove directory trees =item File::Spec -portably perform operations on file names +Portably perform operations on file names + +=item File::Spec::Epoc + +Methods for Epoc file specs =item File::Spec::Functions -portably perform operations on file names +Portably perform operations on file names =item File::Spec::Mac @@ -434,43 +458,47 @@ File::Spec for MacOS =item File::Spec::OS2 -methods for OS/2 file specs +Methods for OS/2 file specs =item File::Spec::Unix -methods used by File::Spec +Methods used by File::Spec =item File::Spec::VMS -methods for VMS file specs +Methods for VMS file specs =item File::Spec::Win32 -methods for Win32 file specs +Methods for Win32 file specs + +=item File::Temp + +Return name and handle of a temporary file safely =item File::stat -by-name interface to Perl's built-in stat() functions +By-name interface to Perl's built-in stat() functions =item FileCache -keep more files open than the system permits +Keep more files open than the system permits =item FileHandle -supply object methods for filehandles +Supply object methods for filehandles -=item FindBin +=item Filter::Simple -Locate directory of original perl script +Simplified source filtering -=item GDBM_File +=item FindBin -Perl5 access to the gdbm library. +Locate directory of original perl script =item Getopt::Long -extended processing of command line options +Extended processing of command line options =item Getopt::Std @@ -478,131 +506,127 @@ Process single-character switches with switch clustering =item I18N::Collate -compare 8-bit scalar data according to the current locale +Compare 8-bit scalar data according to the current locale =item IO -load various IO modules - -=item IO::Dir - -supply object methods for directory handles +Load various IO modules -=item IO::File +=item IPC::Open2 -supply object methods for filehandles +Open a process for both reading and writing -=item IO::Handle +=item IPC::Open3 -supply object methods for I/O handles +Open a process for reading, writing, and error handling -=item IO::Pipe +=item Math::BigFloat -supply object methods for pipes +Arbitrary length float math package -=item IO::Poll +=item Math::BigInt -Object interface to system poll call +Arbitrary size integer math package -=item IO::Seekable +=item Math::Complex -supply seek based methods for I/O objects +Complex numbers and associated mathematical functions -=item IO::Select +=item Math::Trig -OO interface to the select system call +Trigonometric functions -=item IO::Socket +=item NDBM_File -Object interface to socket communications +Tied access to ndbm files -=item IO::Socket::INET +=item Net::Ping -Object interface for AF_INET domain sockets +Check a remote host for reachability -=item IO::Socket::UNIX +=item Net::hostent -Object interface for AF_UNIX domain sockets +By-name interface to Perl's built-in gethost*() functions -=item IPC::Msg +=item Net::netent -SysV Msg IPC object class +By-name interface to Perl's built-in getnet*() functions -=item IPC::Open2 +=item Net::protoent -open a process for both reading and writing +By-name interface to Perl's built-in getproto*() functions -=item IPC::Open3 +=item Net::servent -open a process for reading, writing, and error handling +By-name interface to Perl's built-in getserv*() functions -=item IPC::Semaphore +=item O -SysV Semaphore IPC object class +Generic interface to Perl Compiler backends -=item IPC::SysV +=item ODBM_File -SysV IPC constants +Tied access to odbm files -=item Math::BigFloat +=item Opcode -Arbitrary length float math package +Disable named opcodes when compiling perl code -=item Math::BigInt +=item Pod::Checker -Arbitrary size integer math package +Check pod documents for syntax errors -=item Math::Complex +=item Pod::Find -complex numbers and associated mathematical functions +Find POD documents in directory trees -=item Math::Trig +=item Pod::Html -trigonometric functions +Module to convert pod files to HTML -=item NDBM_File +=item Pod::InputObjects -Tied access to ndbm files +Objects representing POD input paragraphs, commands, etc. -=item Net::Ping +=item Pod::LaTeX -check a remote host for reachability +Convert Pod data to formatted Latex -=item Net::hostent +=item Pod::Man -by-name interface to Perl's built-in gethost*() functions +Convert POD data to formatted *roff input -=item Net::netent +=item Pod::ParseUtils -by-name interface to Perl's built-in getnet*() functions +Helpers for POD parsing and conversion -=item Net::protoent +=item Pod::Parser -by-name interface to Perl's built-in getproto*() functions +Base class for creating POD filters and translators -=item Net::servent +=item Pod::Plainer -by-name interface to Perl's built-in getserv*() functions +Perl extension for converting Pod to old style Pod. -=item O +=item Pod::Select -Generic interface to Perl Compiler backends +Extract selected sections of POD from input -=item Opcode +=item Pod::Text -Disable named opcodes when compiling perl code +Convert POD data to formatted ASCII text -=item POSIX +=item Pod::Text::Color -Perl interface to IEEE Std 1003.1 +Convert POD data to formatted color ASCII text -=item Pod::Html +=item Pod::Text::Termcap -module to convert pod files to HTML +Convert POD data to ASCII text with format escapes -=item Pod::Text +=item Pod::Usage -convert POD data to formatted ASCII text +Print a usage message from embedded pod documentation =item SDBM_File @@ -614,35 +638,35 @@ Compile and execute code in restricted compartments =item Search::Dict -search for key in dictionary file +Search for key in dictionary file =item SelectSaver -save and restore selected file handle +Save and restore selected file handle =item SelfLoader -load functions only on demand +Load functions only on demand =item Shell -run shell commands transparently within perl +Run shell commands transparently within perl =item Socket -load the C socket.h defines and structure manipulators +Load the C socket.h defines and structure manipulators -=item Symbol +=item Storable -manipulate Perl symbols and their names +Persistency for perl data structures -=item Sys::Hostname +=item Symbol -Try every conceivable way to get hostname +Manipulate Perl symbols and their names -=item Sys::Syslog +=item Term::ANSIColor -Perl interface to the UNIX syslog(3) calls +Color screen output using ANSI escape sequences =item Term::Cap @@ -654,73 +678,51 @@ Perl word completion module =item Term::ReadLine -Perl interface to various C packages. +Perl interface to various C packages. If =item Test -provides a simple framework for writing test scripts +Provides a simple framework for writing test scripts =item Test::Harness -run perl standard test scripts with statistics +Run perl standard test scripts with statistics =item Text::Abbrev -create an abbreviation table from a list +Create an abbreviation table from a list =item Text::ParseWords -parse text into an array of tokens or array of arrays +Parse text into an array of tokens or array of arrays =item Text::Soundex Implementation of the Soundex Algorithm as Described by Knuth -=item Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1) - =item Text::Wrap -line wrapping to form simple paragraphs - -=item Thread - -multithreading - -=item Thread::Queue - -thread-safe queues - -=item Thread::Semaphore - -thread-safe semaphores - -=item Thread::Signal - -Start a thread which runs signal handlers reliably - -=item Thread::Specific - -thread-specific keys +Line wrapping to form simple paragraphs =item Tie::Array -base class for tied arrays +Base class for tied arrays =item Tie::Handle -base class definitions for tied handles +Base class definitions for tied handles -=item Tie::Hash, Tie::StdHash +=item Tie::Hash -base class definitions for tied hashes +Base class definitions for tied hashes =item Tie::RefHash -use references as hash keys +Use references as hash keys -=item Tie::Scalar, Tie::StdScalar +=item Tie::Scalar -base class definitions for tied scalars +Base class definitions for tied scalars =item Tie::SubstrHash @@ -728,37 +730,37 @@ Fixed-table-size, fixed-key-length hashing =item Time::Local -efficiently compute time from local and GMT time +Efficiently compute time from local and GMT time =item Time::gmtime -by-name interface to Perl's built-in gmtime() function +By-name interface to Perl's built-in gmtime() function =item Time::localtime -by-name interface to Perl's built-in localtime() function +By-name interface to Perl's built-in localtime() function =item Time::tm -internal object used by Time::gmtime and Time::localtime +Internal object used by Time::gmtime and Time::localtime =item UNIVERSAL -base class for ALL classes (blessed references) +Base class for ALL classes (blessed references) =item User::grent -by-name interface to Perl's built-in getgr*() functions +By-name interface to Perl's built-in getgr*() functions =item User::pwent -by-name interface to Perl's built-in getpw*() functions +By-name interface to Perl's built-in getpw*() functions =back To find out I modules installed on your system, including -those without documentation or outside the standard release, -jus tdo this: +those without documentation or outside the standard release, +just do this: % find `perl -e 'print "@INC"'` -name '*.pm' -print @@ -788,7 +790,7 @@ like Alta Vista or Deja News. CPAN stands for Comprehensive Perl Archive Network; it's a globally replicated trove of Perl materials, including documentation, style -guides, tricks and trap, alternate ports to non-Unix systems and +guides, tricks and traps, alternate ports to non-Unix systems and occasional binary distributions for these. Search engines for CPAN can be found at http://cpan.perl.com/ and at http://theory.uwinnipeg.ca/mod_perl/cpan-search.pl . @@ -797,69 +799,90 @@ Most importantly, CPAN includes around a thousand unbundled modules, some of which require a C compiler to build. Major categories of modules are: -=over +=over 4 =item * + Language Extensions and Documentation Tools =item * + Development Support =item * + Operating System Interfaces =item * + Networking, Device Control (modems) and InterProcess Communication =item * + Data Types and Data Type Utilities =item * + Database Interfaces =item * + User Interfaces =item * + Interfaces to / Emulations of Other Programming Languages =item * + File Names, File Systems and File Locking (see also File Handles) =item * + String Processing, Language Text Processing, Parsing, and Searching =item * + Option, Argument, Parameter, and Configuration File Processing =item * + Internationalization and Locale =item * + Authentication, Security, and Encryption =item * + World Wide Web, HTML, HTTP, CGI, MIME =item * + Server and Daemon Utilities =item * + Archiving and Compression =item * + Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing =item * + Mail and Usenet News =item * + Control Flow Utilities (callbacks and exceptions etc) =item * + File Handle and Input/Output Stream Utilities =item * + Miscellaneous Modules =back @@ -867,141 +890,176 @@ Miscellaneous Modules Registered CPAN sites as of this writing include the following. You should try to choose one close to you: -=over +=over 4 =item Africa - South Africa ftp://ftp.is.co.za/programming/perl/CPAN/ + South Africa ftp://ftp.is.co.za/programming/perl/CPAN/ + ftp://ftp.saix.net/pub/CPAN/ + ftp://ftp.sun.ac.za/CPAN/ ftp://ftpza.co.za/pub/mirrors/cpan/ + =item Asia - China ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/ - Hong Kong ftp://ftp.hkstar.com/pub/CPAN/ - Israel ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/ - Japan ftp://ftp.dti.ad.jp/pub/lang/CPAN/ + China ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/ + Hong Kong ftp://ftp.pacific.net.hk/pub/mirror/CPAN/ + Indonesia ftp://malone.piksi.itb.ac.id/pub/CPAN/ + Israel ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/ + Japan ftp://ftp.dti.ad.jp/pub/lang/CPAN/ ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/ ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/ ftp://ftp.meisei-u.ac.jp/pub/CPAN/ ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ ftp://mirror.nucba.ac.jp/mirror/Perl/ - Singapore ftp://ftp.nus.edu.sg/pub/unix/perl/CPAN/ - South Korea ftp://ftp.bora.net/pub/CPAN/ + Saudi-Arabia ftp://ftp.isu.net.sa/pub/CPAN/ + Singapore ftp://ftp.nus.edu.sg/pub/unix/perl/CPAN/ + South Korea ftp://ftp.bora.net/pub/CPAN/ + ftp://ftp.kornet.net/pub/CPAN/ ftp://ftp.nuri.net/pub/CPAN/ - Taiwan ftp://ftp.wownet.net/pub2/PERL/ + Taiwan ftp://coda.nctu.edu.tw/computer-languages/perl/CPAN/ + ftp://ftp.ee.ncku.edu.tw/pub3/perl/CPAN/ ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/ - Thailand ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/ - ftp://ftp.nectec.or.th/pub/mirrors/CPAN/ + Thailand ftp://ftp.nectec.or.th/pub/mirrors/CPAN/ + =item Australasia - Australia ftp://cpan.topend.com.au/pub/CPAN/ - ftp://ftp.labyrinth.net.au/pub/perl/CPAN/ + Australia ftp://cpan.topend.com.au/pub/CPAN/ + ftp://ftp.labyrinth.net.au/pub/perl-CPAN/ ftp://ftp.sage-au.org.au/pub/compilers/perl/CPAN/ ftp://mirror.aarnet.edu.au/pub/perl/CPAN/ - New Zealand ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ + New Zealand ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ ftp://sunsite.net.nz/pub/languages/perl/CPAN/ -Central America - Costa Rica ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/ +=item Central America + + Costa Rica ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/ + =item Europe - Austria ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/ - Belgium ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/ - Bulgaria ftp://ftp.ntrl.net/pub/mirrors/CPAN/ - Croatia ftp://ftp.linux.hr/pub/CPAN/ - Czech Republic ftp://ftp.fi.muni.cz/pub/perl/ + Austria ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/ + Belgium ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/ + Bulgaria ftp://ftp.ntrl.net/pub/mirrors/CPAN/ + Croatia ftp://ftp.linux.hr/pub/CPAN/ + Czech Republic ftp://ftp.fi.muni.cz/pub/perl/ ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/ - Denmark ftp://sunsite.auc.dk/pub/languages/perl/CPAN/ - Estonia ftp://ftp.ut.ee/pub/languages/perl/CPAN/ - Finland ftp://ftp.funet.fi/pub/languages/perl/CPAN/ - France ftp://ftp.lip6.fr/pub/perl/CPAN/ + Denmark ftp://sunsite.auc.dk/pub/languages/perl/CPAN/ + Estonia ftp://ftp.ut.ee/pub/languages/perl/CPAN/ + Finland ftp://ftp.funet.fi/pub/languages/perl/CPAN/ + France ftp://ftp.grolier.fr/pub/perl/CPAN/ + ftp://ftp.lip6.fr/pub/perl/CPAN/ ftp://ftp.oleane.net/pub/mirrors/CPAN/ ftp://ftp.pasteur.fr/pub/computing/CPAN/ - Germany ftp://ftp.archive.de.uu.net/pub/CPAN/ + ftp://ftp.uvsq.fr/pub/perl/CPAN/ + German ftp://ftp.gigabell.net/pub/CPAN/ + Germany ftp://ftp.archive.de.uu.net/pub/CPAN/ + ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/ ftp://ftp.gmd.de/packages/CPAN/ ftp://ftp.gwdg.de/pub/languages/perl/CPAN/ - ftp://ftp.leo.org/pub/comp/programming/languages/script/perl/CPAN/ + +ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/CPAN/ ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/ ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/ ftp://ftp.uni-erlangen.de/pub/source/CPAN/ ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/ - Greece ftp://ftp.ntua.gr/pub/lang/perl/ - Hungary ftp://ftp.kfki.hu/pub/packages/perl/CPAN/ - Ireland ftp://sunsite.compapp.dcu.ie/pub/perl/ - Italy ftp://cis.uniRoma2.it/CPAN/ + Germany ftp://ftp.archive.de.uu.net/pub/CPAN/ + ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/ + ftp://ftp.gmd.de/packages/CPAN/ + ftp://ftp.gwdg.de/pub/languages/perl/CPAN/ + +ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/CPAN/ + ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/ + ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/ + ftp://ftp.uni-erlangen.de/pub/source/CPAN/ + ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/ + Greece ftp://ftp.ntua.gr/pub/lang/perl/ + Hungary ftp://ftp.kfki.hu/pub/packages/perl/CPAN/ + Iceland ftp://ftp.gm.is/pub/CPAN/ + Ireland ftp://cpan.indigo.ie/pub/CPAN/ + ftp://sunsite.compapp.dcu.ie/pub/perl/ + Italy ftp://cis.uniRoma2.it/CPAN/ ftp://ftp.flashnet.it/pub/CPAN/ ftp://ftp.unina.it/pub/Other/CPAN/ ftp://ftp.unipi.it/pub/mirror/perl/CPAN/ - Netherlands ftp://ftp.cs.uu.nl/mirror/CPAN/ - ftp://ftp.EU.net/packages/cpan/ + Netherlands ftp://ftp.cs.uu.nl/mirror/CPAN/ ftp://ftp.nluug.nl/pub/languages/perl/CPAN/ - Norway ftp://ftp.uit.no/pub/languages/perl/cpan/ + Norway ftp://ftp.uit.no/pub/languages/perl/cpan/ ftp://sunsite.uio.no/pub/languages/perl/CPAN/ - Poland ftp://ftp.man.szczecin.pl/pub/perl/CPAN/ - ftp://ftp.man.torun.pl/pub/doc/CPAN/ + Poland ftp://ftp.man.torun.pl/pub/CPAN/ ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/ ftp://sunsite.icm.edu.pl/pub/CPAN/ - Portugal ftp://ftp.ci.uminho.pt/pub/mirrors/cpan/ + Portugal ftp://ftp.ci.uminho.pt/pub/mirrors/cpan/ ftp://ftp.ist.utl.pt/pub/CPAN/ ftp://ftp.ua.pt/pub/CPAN/ - Romania ftp://ftp.dntis.ro/pub/mirrors/perl-cpan/ - ftp://ftp.dnttm.ro/pub/CPAN/ + Romania ftp://ftp.dnttm.ro/pub/CPAN/ Russia ftp://ftp.chg.ru/pub/lang/perl/CPAN/ ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ - Slovakia ftp://ftp.entry.sk/pub/languages/perl/CPAN/ - Slovenia ftp://ftp.arnes.si/software/perl/CPAN/ - Spain ftp://ftp.etse.urv.es/pub/perl/ + Slovakia ftp://ftp.entry.sk/pub/languages/perl/CPAN/ + Slovenia ftp://ftp.arnes.si/software/perl/CPAN/ + Spain ftp://ftp.etse.urv.es/pub/perl/ ftp://ftp.rediris.es/mirror/CPAN/ - Sweden ftp://ftp.sunet.se/pub/lang/perl/CPAN/ - Switzerland ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ - Turkey ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/ - United Kingdom ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/ + Sweden ftp://ftp.sunet.se/pub/lang/perl/CPAN/ + Switzerland ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ + Turkey ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/ + United Kingdom ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/ ftp://ftp.flirble.org/pub/languages/perl/CPAN/ + +ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/ ftp://ftp.plig.org/pub/CPAN/ ftp://sunsite.doc.ic.ac.uk/packages/CPAN/ - ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/ + =item North America - Alberta ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/ + Alberta ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/ California ftp://cpan.nas.nasa.gov/pub/perl/CPAN/ + ftp://cpan.valueclick.com/CPAN/ ftp://ftp.cdrom.com/pub/perl/CPAN/ - ftp://ftp.digital.com/pub/plan/perl/CPAN/ - Colorado ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ - Florida ftp://ftp.cise.ufl.edu/pub/perl/CPAN/ - Illinois ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/ - Indiana ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN/ + http://download.sourceforge.net/mirrors/CPAN/ + Colorado ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ + Florida ftp://ftp.cise.ufl.edu/pub/perl/CPAN/ + Georgia ftp://ftp.twoguys.org/CPAN/ + Illinois ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/ + Indiana ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN/ ftp://ftp.uwsg.indiana.edu/pub/perl/CPAN/ - Manitoba ftp://theory.uwinnipeg.ca/pub/CPAN/ - Massachusetts ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/ + Kentucky ftp://ftp.uky.edu/CPAN/ + Manitoba ftp://theoryx5.uwinnipeg.ca/pub/CPAN/ + Massachusetts +ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/ ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/ Mexico ftp://ftp.msg.com.mx/pub/CPAN/ - Minnesota ftp://ftp.midearthbbs.com/CPAN/ - New York ftp://ftp.rge.com/pub/languages/perl/ - North Carolina ftp://ftp.duke.edu/pub/perl/ - Oklahoma ftp://ftp.ou.edu/mirrors/CPAN/ + New York ftp://ftp.deao.net/pub/CPAN/ + ftp://ftp.rge.com/pub/languages/perl/ + North Carolina ftp://ftp.duke.edu/pub/perl/ + Nova Scotia ftp://cpan.chebucto.ns.ca/pub/CPAN/ + Oklahoma ftp://ftp.ou.edu/mirrors/CPAN/ Ontario ftp://ftp.crc.ca/pub/packages/lang/perl/CPAN/ - Oregon ftp://ftp.orst.edu/pub/packages/CPAN/ - Pennsylvania ftp://ftp.epix.net/pub/languages/perl/ - Texas ftp://ftp.sedl.org/pub/mirrors/CPAN/ - Utah ftp://mirror.xmission.com/CPAN/ - Virginia ftp://ftp.perl.org/pub/perl/CPAN/ + Oregon ftp://ftp.orst.edu/pub/packages/CPAN/ + Pennsylvania ftp://ftp.epix.net/pub/languages/perl/ + Tennessee ftp://ftp.sunsite.utk.edu/pub/CPAN/ + Texas ftp://ftp.sedl.org/pub/mirrors/CPAN/ + ftp://jhcloos.com/pub/mirror/CPAN/ + Utah ftp://mirror.xmission.com/CPAN/ + Virginia ftp://ftp.perl.org/pub/perl/CPAN/ ftp://ruff.cs.jmu.edu/pub/CPAN/ Washington ftp://ftp-mirror.internap.com/pub/CPAN/ + ftp://ftp.llarian.net/pub/CPAN/ ftp://ftp.spu.edu/pub/CPAN/ + =item South America - Brazil ftp://cpan.if.usp.br/pub/mirror/CPAN/ - Chile ftp://sunsite.dcc.uchile.cl/pub/Lang/perl/CPAN/ + Brazil ftp://cpan.if.usp.br/pub/mirror/CPAN/ + ftp://ftp.matrix.com.br/pub/perl/ + Chile ftp://sunsite.dcc.uchile.cl/pub/Lang/PERL/ =back For an up-to-date listing of CPAN sites, -see http://www.perl.com/perl/CPAN or ftp://www.perl.com/perl/ . +see http://www.perl.com/perl/CPAN/SITES or ftp://www.perl.com/CPAN/SITES . =head1 Modules: Creation, Use, and Abuse @@ -1022,7 +1080,7 @@ its methods by loading dynamic C or C++ objects, but that should be totally transparent to the user of the module. Likewise, the module might set up an AUTOLOAD function to slurp in subroutine definitions on demand, but this is also transparent. Only the F<.pm> file is required to -exist. See L, L, and L for details about +exist. See L, L, and L for details about the AUTOLOAD mechanism. =head2 Guidelines for Module Creation @@ -1045,24 +1103,26 @@ scheme as the original author. =item Try to design the new module to be easy to extend and reuse. -Always use B<-w>. +Try to C (or C). +Remember that you can add C 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; + 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; + my $self = shift; + my $class = ref($self) || $self; + return bless {}, $class; } Pass arrays as references so more parameters can be added later @@ -1075,8 +1135,8 @@ Generally you can delete the C part with no harm at all. Let the objects look after themselves! Generally, avoid hard-wired class names as far as possible. -Avoid C<$r-EClass::func()> where using C<@ISA=qw(... Class ...)> and -C<$r-Efunc()> would work (see L for more details). +Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and +C<< $r->func() >> would work (see L 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 @@ -1094,13 +1154,13 @@ Avoid keeping any state information in your packages. It makes it difficult for multiple other packages to use yours. Keep state information in objects. -Always use B<-w>. +Always use B<-w>. Try to C (or C). Remember that you can add C to individual blocks -of code that need less strictness. +of code that need less strictness. -Always use B<-w>. +Always use B<-w>. Follow the guidelines in the perlstyle(1) manual. @@ -1133,7 +1193,7 @@ or nature of a variable. For example: $no_caps_here function scope my() or local() variables Function and method names seem to work best as all lowercase. -e.g., C<$obj-Eas_string()>. +e.g., C<< $obj->as_string() >>. You can use a leading underscore to indicate that a variable or function should not be used outside the package that defined it. @@ -1149,7 +1209,7 @@ 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 C<$blessed_ref-Emethod>) +module using the ModuleName::item_name (or C<< $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. @@ -1186,6 +1246,12 @@ 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. @@ -1289,7 +1355,7 @@ 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 +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 @@ -1303,16 +1369,17 @@ location. FTP Archives for Perl Modules: -Follow the instructions and links on +Follow the instructions and links on: - http://franz.ww.tu-berlin.de/modulelist + http://www.perl.com/CPAN/modules/00modlist.long.html + http://www.perl.com/CPAN/modules/04pause.html or upload to one of these sites: - ftp://franz.ww.tu-berlin.de/incoming - ftp://ftp.cis.ufl.edu/incoming + https://pause.kbx.de/pause/ + http://pause.perl.org/pause/ -and notify >. +and notify . 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 @@ -1384,18 +1451,28 @@ Don't delete the original .pl file till the new .pm one works! =over 4 -=item Complete applications rarely belong in the Perl Module Library. +=item * + +Complete applications rarely belong in the Perl Module Library. + +=item * -=item Many applications contain some Perl code that could be reused. +Many applications contain some Perl code that could be reused. Help save the world! Share your code in a form that makes it easy to reuse. -=item Break-out the reusable code into one or more separate module files. +=item * + +Break-out the reusable code into one or more separate module files. -=item Take the opportunity to reconsider and redesign the interfaces. +=item * + +Take the opportunity to reconsider and redesign the interfaces. + +=item * -=item In some cases the 'application' can then be reduced to a small +In some cases the 'application' can then be reduced to a small fragment of code built on top of the reusable modules. In these cases the application could invoked as: