1PERLMODLIB(1)          Perl Programmers Reference Guide          PERLMODLIB(1)
2
3
4

NAME

6       perlmodlib - constructing new Perl modules and finding existing ones
7

THE PERL MODULE LIBRARY

9       Many modules are included in the Perl distribution.  These are
10       described below, and all end in .pm.  You may discover compiled library
11       files (usually ending in .so) or small pieces of modules to be
12       autoloaded (ending in .al); these were automatically generated by the
13       installation process.  You may also discover files in the library
14       directory that end in either .pl or .ph.  These are old libraries
15       supplied so that old programs that use them still run.  The .pl files
16       will all eventually be converted into standard modules, and the .ph
17       files made by h2ph will probably end up as extension modules made by
18       h2xs.  (Some .ph values may already be available through the POSIX,
19       Errno, or Fcntl modules.)  The pl2pm file in the distribution may help
20       in your conversion, but it's just a mechanical process and therefore
21       far from bulletproof.
22
23   Pragmatic Modules
24       They work somewhat like compiler directives (pragmata) in that they
25       tend to affect the compilation of your program, and thus will usually
26       work well only when used within a "use", or "no".  Most of these are
27       lexically scoped, so an inner BLOCK may countermand them by saying:
28
29           no integer;
30           no strict 'refs';
31           no warnings;
32
33       which lasts until the end of that BLOCK.
34
35       Some pragmas are lexically scoped--typically those that affect the $^H
36       hints variable.  Others affect the current package instead, like "use
37       vars" and "use subs", which allow you to predeclare a variables or
38       subroutines within a particular file rather than just a block.  Such
39       declarations are effective for the entire file for which they were
40       declared.  You cannot rescind them with "no vars" or "no subs".
41
42       The following pragmas are defined (and have their own documentation).
43
44       attributes  Get/set subroutine or variable attributes
45
46       attrs       Set/get attributes of a subroutine (deprecated)
47
48       autodie     Replace functions with ones that succeed or die with
49                   lexical scope
50
51       autodie::exception
52                   Exceptions from autodying functions.
53
54       autodie::exception::system
55                   Exceptions from autodying system().
56
57       autodie::hints
58                   Provide hints about user subroutines to autodie
59
60       autouse     Postpone load of modules until a function is used
61
62       base        Establish an ISA relationship with base classes at compile
63                   time
64
65       bigint      Transparent BigInteger support for Perl
66
67       bignum      Transparent BigNumber support for Perl
68
69       bigrat      Transparent BigNumber/BigRational support for Perl
70
71       blib        Use MakeMaker's uninstalled version of a package
72
73       bytes       Force byte semantics rather than character semantics
74
75       charnames   Define character names for "\N{named}" string literal
76                   escapes
77
78       constant    Declare constants
79
80       diagnostics Produce verbose warning diagnostics
81
82       encoding    Allows you to write your script in non-ascii or non-utf8
83
84       encoding::warnings
85                   Warn on implicit encoding conversions
86
87       feature     Enable new syntactic features
88
89       fields      Compile-time class fields
90
91       filetest    Control the filetest permission operators
92
93       if          "use" a Perl module if a condition holds
94
95       integer     Use integer arithmetic instead of floating point
96
97       less        Request less of something
98
99       lib         Manipulate @INC at compile time
100
101       locale      Use and avoid POSIX locales for built-in operations
102
103       mro         Method Resolution Order
104
105       open        Set default PerlIO layers for input and output
106
107       ops         Restrict unsafe operations when compiling
108
109       overload    Package for overloading Perl operations
110
111       overloading Lexically control overloading
112
113       parent      Establish an ISA relationship with base classes at compile
114                   time
115
116       re          Alter regular expression behaviour
117
118       sigtrap     Enable simple signal handling
119
120       sort        Control sort() behaviour
121
122       strict      Restrict unsafe constructs
123
124       subs        Predeclare sub names
125
126       threads     Perl interpreter-based threads
127
128       threads::shared
129                   Perl extension for sharing data structures between threads
130
131       utf8        Enable/disable UTF-8 (or UTF-EBCDIC) in source code
132
133       vars        Predeclare global variable names (obsolete)
134
135       version     Perl extension for Version Objects
136
137       vmsish      Control VMS-specific language features
138
139       warnings    Control optional warnings
140
141       warnings::register
142                   Warnings import function
143
144   Standard Modules
145       Standard, bundled modules are all expected to behave in a well-defined
146       manner with respect to namespace pollution because they use the
147       Exporter module.  See their own documentation for details.
148
149       It's possible that not all modules listed below are installed on your
150       system. For example, the GDBM_File module will not be installed if you
151       don't have the gdbm library.
152
153       AnyDBM_File Provide framework for multiple DBMs
154
155       App::Prove  Implements the "prove" command.
156
157       App::Prove::State
158                   State storage for the "prove" command.
159
160       App::Prove::State::Result
161                   Individual test suite results.
162
163       App::Prove::State::Result::Test
164                   Individual test results.
165
166       Archive::Extract
167                   A generic archive extracting mechanism
168
169       Archive::Tar
170                   Module for manipulations of tar archives
171
172       Archive::Tar::File
173                   A subclass for in-memory extracted file from Archive::Tar
174
175       Attribute::Handlers
176                   Simpler definition of attribute handlers
177
178       AutoLoader  Load subroutines only on demand
179
180       AutoSplit   Split a package for autoloading
181
182       B           The Perl Compiler
183
184       B::Concise  Walk Perl syntax tree, printing concise info about ops
185
186       B::Debug    Walk Perl syntax tree, printing debug info about ops
187
188       B::Deparse  Perl compiler backend to produce perl code
189
190       B::Lint     Perl lint
191
192       B::Lint::Debug
193                   Adds debugging stringification to B::
194
195       B::Showlex  Show lexical variables used in functions or files
196
197       B::Terse    Walk Perl syntax tree, printing terse info about ops
198
199       B::Xref     Generates cross reference reports for Perl programs
200
201       Benchmark   Benchmark running times of Perl code
202
203       CGI         Handle Common Gateway Interface requests and responses
204
205       CGI::Apache Backward compatibility module for CGI.pm
206
207       CGI::Carp   CGI routines for writing to the HTTPD (or other) error log
208
209       CGI::Cookie Interface to HTTP Cookies
210
211       CGI::Fast   CGI Interface for Fast CGI
212
213       CGI::Pretty Module to produce nicely formatted HTML code
214
215       CGI::Push   Simple Interface to Server Push
216
217       CGI::Switch Backward compatibility module for defunct CGI::Switch
218
219       CGI::Util   Internal utilities used by CGI module
220
221       CORE        Pseudo-namespace for Perl's core routines
222
223       CPAN        Query, download and build perl modules from CPAN sites
224
225       CPAN::API::HOWTO
226                   A recipe book for programming with CPAN.pm
227
228       CPAN::Distroprefs
229                   Read and match distroprefs
230
231       CPAN::FirstTime
232                   Utility for CPAN::Config file Initialization
233
234       CPAN::Kwalify
235                   Interface between CPAN.pm and Kwalify.pm
236
237       CPAN::Nox   Wrapper around CPAN.pm without using any XS module
238
239       CPAN::Version
240                   Utility functions to compare CPAN versions
241
242       CPANPLUS    API & CLI access to the CPAN mirrors
243
244       CPANPLUS::Dist::Base
245                   Base class for custom distribution classes
246
247       CPANPLUS::Dist::Build
248                   CPANPLUS plugin to install packages that use Build.PL
249
250       CPANPLUS::Dist::Build::Constants
251                   Constants for CPANPLUS::Dist::Build
252
253       CPANPLUS::Dist::Sample
254                   Sample code to create your own Dist::* plugin
255
256       CPANPLUS::Internals::Source::Memory
257                   In memory implementation
258
259       CPANPLUS::Internals::Source::SQLite
260                   SQLite implementation
261
262       CPANPLUS::Shell::Classic
263                   CPAN.pm emulation for CPANPLUS
264
265       CPANPLUS::Shell::Default::Plugins::HOWTO
266                   Documentation on how to write your own plugins
267
268       Carp        Warn of errors (from perspective of caller)
269
270       Carp::Heavy Heavy machinery, no user serviceable parts inside
271
272       Class::ISA  Report the search path for a class's ISA tree
273
274       Class::Struct
275                   Declare struct-like datatypes as Perl classes
276
277       Compress::Raw::Bzip2
278                   Low-Level Interface to bzip2 compression library
279
280       Compress::Raw::Bzip2::FAQ
281                   Frequently Asked Questions about Compress::Raw::Bzip2
282
283       Compress::Raw::Zlib
284                   Low-Level Interface to zlib compression library
285
286       Compress::Raw::Zlib::FAQ
287                   Frequently Asked Questions about Compress::Raw::Zlib
288
289       Compress::Zlib
290                   Interface to zlib compression library
291
292       Config      Access Perl configuration information
293
294       Cwd         Get pathname of current working directory
295
296       DB          Programmatic interface to the Perl debugging API
297
298       DBM_Filter  Filter DBM keys/values
299
300       DBM_Filter::compress
301                   Filter for DBM_Filter
302
303       DBM_Filter::encode
304                   Filter for DBM_Filter
305
306       DBM_Filter::int32
307                   Filter for DBM_Filter
308
309       DBM_Filter::null
310                   Filter for DBM_Filter
311
312       DBM_Filter::utf8
313                   Filter for DBM_Filter
314
315       DB_File     Perl5 access to Berkeley DB version 1.x
316
317       Data::Dumper
318                   Stringified perl data structures, suitable for both
319                   printing and "eval"
320
321       Devel::DProf
322                   A Perl code profiler
323
324       Devel::InnerPackage
325                   Find all the inner packages of a package
326
327       Devel::PPPort
328                   Perl/Pollution/Portability
329
330       Devel::Peek A data debugging tool for the XS programmer
331
332       Devel::SelfStubber
333                   Generate stubs for a SelfLoading module
334
335       Digest      Modules that calculate message digests
336
337       Digest::MD5 Perl interface to the MD5 Algorithm
338
339       Digest::SHA Perl extension for SHA-1/224/256/384/512
340
341       Digest::base
342                   Digest base class
343
344       Digest::file
345                   Calculate digests of files
346
347       DirHandle   Supply object methods for directory handles
348
349       Dumpvalue   Provides screen dump of Perl data.
350
351       DynaLoader  Dynamically load C libraries into Perl code
352
353       Encode      Character encodings
354
355       Encode::Alias
356                   Alias definitions to encodings
357
358       Encode::Byte
359                   Single Byte Encodings
360
361       Encode::CJKConstants
362                   Internally used by Encode::??::ISO_2022_*
363
364       Encode::CN  China-based Chinese Encodings
365
366       Encode::CN::HZ
367                   Internally used by Encode::CN
368
369       Encode::Config
370                   Internally used by Encode
371
372       Encode::EBCDIC
373                   EBCDIC Encodings
374
375       Encode::Encoder
376                   Object Oriented Encoder
377
378       Encode::Encoding
379                   Encode Implementation Base Class
380
381       Encode::GSM0338
382                   ESTI GSM 03.38 Encoding
383
384       Encode::Guess
385                   Guesses encoding from data
386
387       Encode::JP  Japanese Encodings
388
389       Encode::JP::H2Z
390                   Internally used by Encode::JP::2022_JP*
391
392       Encode::JP::JIS7
393                   Internally used by Encode::JP
394
395       Encode::KR  Korean Encodings
396
397       Encode::KR::2022_KR
398                   Internally used by Encode::KR
399
400       Encode::MIME::Header
401                   MIME 'B' and 'Q' header encoding
402
403       Encode::MIME::Name
404                   Internally used by Encode
405
406       Encode::PerlIO
407                   A detailed document on Encode and PerlIO
408
409       Encode::Supported
410                   Encodings supported by Encode
411
412       Encode::Symbol
413                   Symbol Encodings
414
415       Encode::TW  Taiwan-based Chinese Encodings
416
417       Encode::Unicode
418                   Various Unicode Transformation Formats
419
420       Encode::Unicode::UTF7
421                   UTF-7 encoding
422
423       English     Use nice English (or awk) names for ugly punctuation
424                   variables
425
426       Env         Perl module that imports environment variables as scalars
427                   or arrays
428
429       Errno       System errno constants
430
431       Exporter    Implements default import method for modules
432
433       Exporter::Heavy
434                   Exporter guts
435
436       ExtUtils::CBuilder
437                   Compile and link C code for Perl modules
438
439       ExtUtils::CBuilder::Platform::Windows
440                   Builder class for Windows platforms
441
442       ExtUtils::Command
443                   Utilities to replace common UNIX commands in Makefiles etc.
444
445       ExtUtils::Command::MM
446                   Commands for the MM's to use in Makefiles
447
448       ExtUtils::Constant
449                   Generate XS code to import C header constants
450
451       ExtUtils::Constant::Base
452                   Base class for ExtUtils::Constant objects
453
454       ExtUtils::Constant::Utils
455                   Helper functions for ExtUtils::Constant
456
457       ExtUtils::Constant::XS
458                   Generate C code for XS modules' constants.
459
460       ExtUtils::Embed
461                   Utilities for embedding Perl in C/C++ applications
462
463       ExtUtils::Install
464                   Install files from here to there
465
466       ExtUtils::Installed
467                   Inventory management of installed modules
468
469       ExtUtils::Liblist
470                   Determine libraries to use and how to use them
471
472       ExtUtils::MM
473                   OS adjusted ExtUtils::MakeMaker subclass
474
475       ExtUtils::MM_AIX
476                   AIX specific subclass of ExtUtils::MM_Unix
477
478       ExtUtils::MM_Any
479                   Platform-agnostic MM methods
480
481       ExtUtils::MM_BeOS
482                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
483
484       ExtUtils::MM_Cygwin
485                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
486
487       ExtUtils::MM_DOS
488                   DOS specific subclass of ExtUtils::MM_Unix
489
490       ExtUtils::MM_Darwin
491                   Special behaviors for OS X
492
493       ExtUtils::MM_MacOS
494                   Once produced Makefiles for MacOS Classic
495
496       ExtUtils::MM_NW5
497                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
498
499       ExtUtils::MM_OS2
500                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
501
502       ExtUtils::MM_QNX
503                   QNX specific subclass of ExtUtils::MM_Unix
504
505       ExtUtils::MM_UWIN
506                   U/WIN specific subclass of ExtUtils::MM_Unix
507
508       ExtUtils::MM_Unix
509                   Methods used by ExtUtils::MakeMaker
510
511       ExtUtils::MM_VMS
512                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
513
514       ExtUtils::MM_VOS
515                   VOS specific subclass of ExtUtils::MM_Unix
516
517       ExtUtils::MM_Win32
518                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
519
520       ExtUtils::MM_Win95
521                   Method to customize MakeMaker for Win9X
522
523       ExtUtils::MY
524                   ExtUtils::MakeMaker subclass for customization
525
526       ExtUtils::MakeMaker
527                   Create a module Makefile
528
529       ExtUtils::MakeMaker::Config
530                   Wrapper around Config.pm
531
532       ExtUtils::MakeMaker::FAQ
533                   Frequently Asked Questions About MakeMaker
534
535       ExtUtils::MakeMaker::Tutorial
536                   Writing a module with MakeMaker
537
538       ExtUtils::Manifest
539                   Utilities to write and check a MANIFEST file
540
541       ExtUtils::Mkbootstrap
542                   Make a bootstrap file for use by DynaLoader
543
544       ExtUtils::Mksymlists
545                   Write linker options files for dynamic extension
546
547       ExtUtils::Packlist
548                   Manage .packlist files
549
550       ExtUtils::ParseXS
551                   Converts Perl XS code into C code
552
553       ExtUtils::XSSymSet
554                   Keep sets of symbol names palatable to the VMS linker
555
556       ExtUtils::testlib
557                   Add blib/* directories to @INC
558
559       Fatal       Replace functions with equivalents which succeed or die
560
561       Fcntl       Load the C Fcntl.h defines
562
563       File::Basename
564                   Parse file paths into directory, filename and suffix.
565
566       File::CheckTree
567                   Run many filetest checks on a tree
568
569       File::Compare
570                   Compare files or filehandles
571
572       File::Copy  Copy files or filehandles
573
574       File::DosGlob
575                   DOS like globbing and then some
576
577       File::Fetch A generic file fetching mechanism
578
579       File::Find  Traverse a directory tree.
580
581       File::Glob  Perl extension for BSD glob routine
582
583       File::GlobMapper
584                   Extend File Glob to Allow Input and Output Files
585
586       File::Path  Create or remove directory trees
587
588       File::Spec  Portably perform operations on file names
589
590       File::Spec::Cygwin
591                   Methods for Cygwin file specs
592
593       File::Spec::Epoc
594                   Methods for Epoc file specs
595
596       File::Spec::Functions
597                   Portably perform operations on file names
598
599       File::Spec::Mac
600                   File::Spec for Mac OS (Classic)
601
602       File::Spec::OS2
603                   Methods for OS/2 file specs
604
605       File::Spec::Unix
606                   File::Spec for Unix, base for other File::Spec modules
607
608       File::Spec::VMS
609                   Methods for VMS file specs
610
611       File::Spec::Win32
612                   Methods for Win32 file specs
613
614       File::Temp  Return name and handle of a temporary file safely
615
616       File::stat  By-name interface to Perl's built-in stat() functions
617
618       FileCache   Keep more files open than the system permits
619
620       FileHandle  Supply object methods for filehandles
621
622       Filter::Simple
623                   Simplified source filtering
624
625       Filter::Util::Call
626                   Perl Source Filter Utility Module
627
628       FindBin     Locate directory of original perl script
629
630       GDBM_File   Perl5 access to the gdbm library.
631
632       Getopt::Long
633                   Extended processing of command line options
634
635       Getopt::Std Process single-character switches with switch clustering
636
637       Hash::Util  A selection of general-utility hash subroutines
638
639       Hash::Util::FieldHash
640                   Support for Inside-Out Classes
641
642       I18N::Collate
643                   Compare 8-bit scalar data according to the current locale
644
645       I18N::LangTags
646                   Functions for dealing with RFC3066-style language tags
647
648       I18N::LangTags::Detect
649                   Detect the user's language preferences
650
651       I18N::LangTags::List
652                   Tags and names for human languages
653
654       I18N::Langinfo
655                   Query locale information
656
657       IO          Load various IO modules
658
659       IO::Compress::Base
660                   Base Class for IO::Compress modules
661
662       IO::Compress::Bzip2
663                   Write bzip2 files/buffers
664
665       IO::Compress::Deflate
666                   Write RFC 1950 files/buffers
667
668       IO::Compress::FAQ
669                   Frequently Asked Questions about IO::Compress
670
671       IO::Compress::Gzip
672                   Write RFC 1952 files/buffers
673
674       IO::Compress::RawDeflate
675                   Write RFC 1951 files/buffers
676
677       IO::Compress::Zip
678                   Write zip files/buffers
679
680       IO::Dir     Supply object methods for directory handles
681
682       IO::File    Supply object methods for filehandles
683
684       IO::Handle  Supply object methods for I/O handles
685
686       IO::Pipe    Supply object methods for pipes
687
688       IO::Poll    Object interface to system poll call
689
690       IO::Seekable
691                   Supply seek based methods for I/O objects
692
693       IO::Select  OO interface to the select system call
694
695       IO::Socket  Object interface to socket communications
696
697       IO::Socket::INET
698                   Object interface for AF_INET domain sockets
699
700       IO::Socket::UNIX
701                   Object interface for AF_UNIX domain sockets
702
703       IO::Uncompress::AnyInflate
704                   Uncompress zlib-based (zip, gzip) file/buffer
705
706       IO::Uncompress::AnyUncompress
707                   Uncompress gzip, zip, bzip2 or lzop file/buffer
708
709       IO::Uncompress::Base
710                   Base Class for IO::Uncompress modules
711
712       IO::Uncompress::Bunzip2
713                   Read bzip2 files/buffers
714
715       IO::Uncompress::Gunzip
716                   Read RFC 1952 files/buffers
717
718       IO::Uncompress::Inflate
719                   Read RFC 1950 files/buffers
720
721       IO::Uncompress::RawInflate
722                   Read RFC 1951 files/buffers
723
724       IO::Uncompress::Unzip
725                   Read zip files/buffers
726
727       IO::Zlib    IO:: style interface to Compress::Zlib
728
729       IPC::Cmd    Finding and running system commands made easy
730
731       IPC::Msg    SysV Msg IPC object class
732
733       IPC::Open2  Open a process for both reading and writing
734
735       IPC::Open3  Open a process for reading, writing, and error handling
736
737       IPC::Semaphore
738                   SysV Semaphore IPC object class
739
740       IPC::SharedMem
741                   SysV Shared Memory IPC object class
742
743       IPC::SysV   System V IPC constants and system calls
744
745       List::Util  A selection of general-utility list subroutines
746
747       List::Util::XS
748                   Indicate if List::Util was compiled with a C compiler
749
750       Locale::Constants
751                   Constants for Locale codes
752
753       Locale::Country
754                   ISO codes for country identification (ISO 3166)
755
756       Locale::Currency
757                   ISO three letter codes for currency identification (ISO
758                   4217)
759
760       Locale::Language
761                   ISO two letter codes for language identification (ISO 639)
762
763       Locale::Maketext
764                   Framework for localization
765
766       Locale::Maketext::Simple
767                   Simple interface to Locale::Maketext::Lexicon
768
769       Locale::Maketext::TPJ13
770                   Article about software localization
771
772       Locale::Script
773                   ISO codes for script identification (ISO 15924)
774
775       Log::Message
776                   A generic message storing mechanism;
777
778       Log::Message::Config
779                   Configuration options for Log::Message
780
781       Log::Message::Handlers
782                   Message handlers for Log::Message
783
784       Log::Message::Item
785                   Message objects for Log::Message
786
787       MIME::Base64
788                   Encoding and decoding of base64 strings
789
790       MIME::QuotedPrint
791                   Encoding and decoding of quoted-printable strings
792
793       Math::BigFloat
794                   Arbitrary size floating point math package
795
796       Math::BigInt
797                   Arbitrary size integer/float math package
798
799       Math::BigInt::Calc
800                   Pure Perl module to support Math::BigInt
801
802       Math::BigInt::CalcEmu
803                   Emulate low-level math with BigInt code
804
805       Math::BigInt::FastCalc
806                   Math::BigInt::Calc with some XS for more speed
807
808       Math::BigRat
809                   Arbitrary big rational numbers
810
811       Math::Complex
812                   Complex numbers and associated mathematical functions
813
814       Math::Trig  Trigonometric functions
815
816       Memoize     Make functions faster by trading space for time
817
818       Memoize::AnyDBM_File
819                   Glue to provide EXISTS for AnyDBM_File for Storable use
820
821       Memoize::Expire
822                   Plug-in module for automatic expiration of memoized values
823
824       Memoize::ExpireFile
825                   Test for Memoize expiration semantics
826
827       Memoize::ExpireTest
828                   Test for Memoize expiration semantics
829
830       Memoize::NDBM_File
831                   Glue to provide EXISTS for NDBM_File for Storable use
832
833       Memoize::SDBM_File
834                   Glue to provide EXISTS for SDBM_File for Storable use
835
836       Memoize::Storable
837                   Store Memoized data in Storable database
838
839       Module::Build
840                   Build and install Perl modules
841
842       Module::Build::API
843                   API Reference for Module Authors
844
845       Module::Build::Authoring
846                   Authoring Module::Build modules
847
848       Module::Build::Base
849                   Default methods for Module::Build
850
851       Module::Build::Compat
852                   Compatibility with ExtUtils::MakeMaker
853
854       Module::Build::ConfigData
855                   Configuration for Module::Build
856
857       Module::Build::Cookbook
858                   Examples of Module::Build Usage
859
860       Module::Build::ModuleInfo
861                   Gather package and POD information from a perl module file
862
863       Module::Build::Notes
864                   Configuration for $module_name
865
866       Module::Build::PPMMaker
867                   Perl Package Manager file creation
868
869       Module::Build::Platform::Amiga
870                   Builder class for Amiga platforms
871
872       Module::Build::Platform::Default
873                   Stub class for unknown platforms
874
875       Module::Build::Platform::EBCDIC
876                   Builder class for EBCDIC platforms
877
878       Module::Build::Platform::MPEiX
879                   Builder class for MPEiX platforms
880
881       Module::Build::Platform::MacOS
882                   Builder class for MacOS platforms
883
884       Module::Build::Platform::RiscOS
885                   Builder class for RiscOS platforms
886
887       Module::Build::Platform::Unix
888                   Builder class for Unix platforms
889
890       Module::Build::Platform::VMS
891                   Builder class for VMS platforms
892
893       Module::Build::Platform::VOS
894                   Builder class for VOS platforms
895
896       Module::Build::Platform::Windows
897                   Builder class for Windows platforms
898
899       Module::Build::Platform::aix
900                   Builder class for AIX platform
901
902       Module::Build::Platform::cygwin
903                   Builder class for Cygwin platform
904
905       Module::Build::Platform::darwin
906                   Builder class for Mac OS X platform
907
908       Module::Build::Platform::os2
909                   Builder class for OS/2 platform
910
911       Module::Build::YAML
912                   Provides just enough YAML support so that Module::Build
913                   works even if YAML.pm is not installed
914
915       Module::CoreList
916                   What modules shipped with versions of perl
917
918       Module::Load
919                   Runtime require of both modules and files
920
921       Module::Load::Conditional
922                   Looking up module information / loading at runtime
923
924       Module::Loaded
925                   Mark modules as loaded or unloaded
926
927       Module::Pluggable
928                   Automatically give your module the ability to have plugins
929
930       Module::Pluggable::Object
931                   Automatically give your module the ability to have plugins
932
933       NDBM_File   Tied access to ndbm files
934
935       NEXT        Provide a pseudo-class NEXT (et al) that allows method
936                   redispatch
937
938       Net::Cmd    Network Command class (as used by FTP, SMTP etc)
939
940       Net::Config Local configuration data for libnet
941
942       Net::Domain Attempt to evaluate the current host's internet name and
943                   domain
944
945       Net::FTP    FTP Client class
946
947       Net::NNTP   NNTP Client class
948
949       Net::Netrc  OO interface to users netrc file
950
951       Net::POP3   Post Office Protocol 3 Client class (RFC1939)
952
953       Net::Ping   Check a remote host for reachability
954
955       Net::SMTP   Simple Mail Transfer Protocol Client
956
957       Net::Time   Time and daytime network client interface
958
959       Net::hostent
960                   By-name interface to Perl's built-in gethost*() functions
961
962       Net::libnetFAQ
963                   Libnet Frequently Asked Questions
964
965       Net::netent By-name interface to Perl's built-in getnet*() functions
966
967       Net::protoent
968                   By-name interface to Perl's built-in getproto*() functions
969
970       Net::servent
971                   By-name interface to Perl's built-in getserv*() functions
972
973       O           Generic interface to Perl Compiler backends
974
975       ODBM_File   Tied access to odbm files
976
977       Opcode      Disable named opcodes when compiling perl code
978
979       POSIX       Perl interface to IEEE Std 1003.1
980
981       Package::Constants
982                   List all constants declared in a package
983
984       Params::Check
985                   A generic input parsing/checking mechanism.
986
987       Parse::CPAN::Meta
988                   Parse META.yml and other similar CPAN metadata files
989
990       PerlIO      On demand loader for PerlIO layers and root of PerlIO::*
991                   name space
992
993       PerlIO::encoding
994                   Encoding layer
995
996       PerlIO::scalar
997                   In-memory IO, scalar IO
998
999       PerlIO::via Helper class for PerlIO layers implemented in perl
1000
1001       PerlIO::via::QuotedPrint
1002                   PerlIO layer for quoted-printable strings
1003
1004       Pod::Checker
1005                   Check pod documents for syntax errors
1006
1007       Pod::Escapes
1008                   For resolving Pod E<...> sequences
1009
1010       Pod::Find   Find POD documents in directory trees
1011
1012       Pod::Functions
1013                   Group Perl's functions a la perlfunc.pod
1014
1015       Pod::Html   Module to convert pod files to HTML
1016
1017       Pod::InputObjects
1018                   Objects representing POD input paragraphs, commands, etc.
1019
1020       Pod::LaTeX  Convert Pod data to formatted Latex
1021
1022       Pod::Man    Convert POD data to formatted *roff input
1023
1024       Pod::ParseLink
1025                   Parse an L<> formatting code in POD text
1026
1027       Pod::ParseUtils
1028                   Helpers for POD parsing and conversion
1029
1030       Pod::Parser Base class for creating POD filters and translators
1031
1032       Pod::Perldoc::ToChecker
1033                   Let Perldoc check Pod for errors
1034
1035       Pod::Perldoc::ToMan
1036                   Let Perldoc render Pod as man pages
1037
1038       Pod::Perldoc::ToNroff
1039                   Let Perldoc convert Pod to nroff
1040
1041       Pod::Perldoc::ToPod
1042                   Let Perldoc render Pod as ... Pod!
1043
1044       Pod::Perldoc::ToRtf
1045                   Let Perldoc render Pod as RTF
1046
1047       Pod::Perldoc::ToText
1048                   Let Perldoc render Pod as plaintext
1049
1050       Pod::Perldoc::ToTk
1051                   Let Perldoc use Tk::Pod to render Pod
1052
1053       Pod::Perldoc::ToXml
1054                   Let Perldoc render Pod as XML
1055
1056       Pod::PlainText
1057                   Convert POD data to formatted ASCII text
1058
1059       Pod::Plainer
1060                   Perl extension for converting Pod to old style Pod.
1061
1062       Pod::Select Extract selected sections of POD from input
1063
1064       Pod::Simple Framework for parsing Pod
1065
1066       Pod::Simple::Checker
1067                   Check the Pod syntax of a document
1068
1069       Pod::Simple::Debug
1070                   Put Pod::Simple into trace/debug mode
1071
1072       Pod::Simple::DumpAsText
1073                   Dump Pod-parsing events as text
1074
1075       Pod::Simple::DumpAsXML
1076                   Turn Pod into XML
1077
1078       Pod::Simple::HTML
1079                   Convert Pod to HTML
1080
1081       Pod::Simple::HTMLBatch
1082                   Convert several Pod files to several HTML files
1083
1084       Pod::Simple::LinkSection
1085                   Represent "section" attributes of L codes
1086
1087       Pod::Simple::Methody
1088                   Turn Pod::Simple events into method calls
1089
1090       Pod::Simple::PullParser
1091                   A pull-parser interface to parsing Pod
1092
1093       Pod::Simple::PullParserEndToken
1094                   End-tokens from Pod::Simple::PullParser
1095
1096       Pod::Simple::PullParserStartToken
1097                   Start-tokens from Pod::Simple::PullParser
1098
1099       Pod::Simple::PullParserTextToken
1100                   Text-tokens from Pod::Simple::PullParser
1101
1102       Pod::Simple::PullParserToken
1103                   Tokens from Pod::Simple::PullParser
1104
1105       Pod::Simple::RTF
1106                   Format Pod as RTF
1107
1108       Pod::Simple::Search
1109                   Find POD documents in directory trees
1110
1111       Pod::Simple::SimpleTree
1112                   Parse Pod into a simple parse tree
1113
1114       Pod::Simple::Subclassing
1115                   Write a formatter as a Pod::Simple subclass
1116
1117       Pod::Simple::Text
1118                   Format Pod as plaintext
1119
1120       Pod::Simple::TextContent
1121                   Get the text content of Pod
1122
1123       Pod::Simple::XHTML
1124                   Format Pod as validating XHTML
1125
1126       Pod::Simple::XMLOutStream
1127                   Turn Pod into XML
1128
1129       Pod::Text   Convert POD data to formatted ASCII text
1130
1131       Pod::Text::Color
1132                   Convert POD data to formatted color ASCII text
1133
1134       Pod::Text::Termcap
1135                   Convert POD data to ASCII text with format escapes
1136
1137       Pod::Usage  Print a usage message from embedded pod documentation
1138
1139       SDBM_File   Tied access to sdbm files
1140
1141       Safe        Compile and execute code in restricted compartments
1142
1143       Scalar::Util
1144                   A selection of general-utility scalar subroutines
1145
1146       Search::Dict
1147                   Search for key in dictionary file
1148
1149       SelectSaver Save and restore selected file handle
1150
1151       SelfLoader  Load functions only on demand
1152
1153       Shell       Run shell commands transparently within perl
1154
1155       Socket      Load the C socket.h defines and structure manipulators
1156
1157       Storable    Persistence for Perl data structures
1158
1159       Switch      A switch statement for Perl
1160
1161       Symbol      Manipulate Perl symbols and their names
1162
1163       Sys::Hostname
1164                   Try every conceivable way to get hostname
1165
1166       Sys::Syslog Perl interface to the UNIX syslog(3) calls
1167
1168       Sys::Syslog::Win32
1169                   Win32 support for Sys::Syslog
1170
1171       TAP::Base   Base class that provides common functionality to
1172                   TAP::Parser
1173
1174       TAP::Formatter::Color
1175                   Run Perl test scripts with color
1176
1177       TAP::Formatter::Console
1178                   Harness output delegate for default console output
1179
1180       TAP::Formatter::Console
1181                   Harness output delegate for default console output
1182
1183       TAP::Formatter::Console::ParallelSession
1184                   Harness output delegate for parallel console output
1185
1186       TAP::Formatter::Console::Session
1187                   Harness output delegate for default console output
1188
1189       TAP::Formatter::File
1190                   Harness output delegate for file output
1191
1192       TAP::Formatter::File::Session
1193                   Harness output delegate for file output
1194
1195       TAP::Formatter::Session
1196                   Abstract base class for harness output delegate
1197
1198       TAP::Harness
1199                   Run test scripts with statistics
1200
1201       TAP::Object Base class that provides common functionality to all
1202                   "TAP::*" modules
1203
1204       TAP::Parser Parse TAP output
1205
1206       TAP::Parser::Aggregator
1207                   Aggregate TAP::Parser results
1208
1209       TAP::Parser::Grammar
1210                   A grammar for the Test Anything Protocol.
1211
1212       TAP::Parser::Iterator
1213                   Internal base class for TAP::Parser Iterators
1214
1215       TAP::Parser::Iterator::Array
1216                   Internal TAP::Parser array Iterator
1217
1218       TAP::Parser::Iterator::Process
1219                   Internal TAP::Parser Iterator
1220
1221       TAP::Parser::Iterator::Stream
1222                   Internal TAP::Parser Iterator
1223
1224       TAP::Parser::IteratorFactory
1225                   Internal TAP::Parser Iterator
1226
1227       TAP::Parser::Multiplexer
1228                   Multiplex multiple TAP::Parsers
1229
1230       TAP::Parser::Result
1231                   Base class for TAP::Parser output objects
1232
1233       TAP::Parser::Result::Bailout
1234                   Bailout result token.
1235
1236       TAP::Parser::Result::Comment
1237                   Comment result token.
1238
1239       TAP::Parser::Result::Plan
1240                   Plan result token.
1241
1242       TAP::Parser::Result::Pragma
1243                   TAP pragma token.
1244
1245       TAP::Parser::Result::Test
1246                   Test result token.
1247
1248       TAP::Parser::Result::Unknown
1249                   Unknown result token.
1250
1251       TAP::Parser::Result::Version
1252                   TAP syntax version token.
1253
1254       TAP::Parser::Result::YAML
1255                   YAML result token.
1256
1257       TAP::Parser::ResultFactory
1258                   Factory for creating TAP::Parser output objects
1259
1260       TAP::Parser::Scheduler
1261                   Schedule tests during parallel testing
1262
1263       TAP::Parser::Scheduler::Job
1264                   A single testing job.
1265
1266       TAP::Parser::Scheduler::Spinner
1267                   A no-op job.
1268
1269       TAP::Parser::Source
1270                   Stream output from some source
1271
1272       TAP::Parser::Source::Perl
1273                   Stream Perl output
1274
1275       TAP::Parser::Utils
1276                   Internal TAP::Parser utilities
1277
1278       TAP::Parser::YAMLish::Reader
1279                   Read YAMLish data from iterator
1280
1281       TAP::Parser::YAMLish::Writer
1282                   Write YAMLish data
1283
1284       Term::ANSIColor
1285                   Color screen output using ANSI escape sequences
1286
1287       Term::Cap   Perl termcap interface
1288
1289       Term::Complete
1290                   Perl word completion module
1291
1292       Term::ReadLine
1293                   Perl interface to various "readline" packages.
1294
1295       Term::UI    Term::ReadLine UI made easy
1296
1297       Test        Provides a simple framework for writing test scripts
1298
1299       Test::Builder
1300                   Backend for building test libraries
1301
1302       Test::Builder::Module
1303                   Base class for test modules
1304
1305       Test::Builder::Tester
1306                   Test testsuites that have been built with
1307
1308       Test::Builder::Tester::Color
1309                   Turn on colour in Test::Builder::Tester
1310
1311       Test::Harness
1312                   Run Perl standard test scripts with statistics
1313
1314       Test::More  Yet another framework for writing test scripts
1315
1316       Test::Simple
1317                   Basic utilities for writing tests.
1318
1319       Test::Tutorial
1320                   A tutorial about writing really basic tests
1321
1322       Text::Abbrev
1323                   Create an abbreviation table from a list
1324
1325       Text::Balanced
1326                   Extract delimited text sequences from strings.
1327
1328       Text::ParseWords
1329                   Parse text into an array of tokens or array of arrays
1330
1331       Text::Soundex
1332                   Implementation of the soundex algorithm.
1333
1334       Text::Tabs  Expand and unexpand tabs per the unix expand(1) and
1335                   unexpand(1)
1336
1337       Text::Wrap  Line wrapping to form simple paragraphs
1338
1339       Thread      Manipulate threads in Perl (for old code only)
1340
1341       Thread::Queue
1342                   Thread-safe queues
1343
1344       Thread::Semaphore
1345                   Thread-safe semaphores
1346
1347       Tie::Array  Base class for tied arrays
1348
1349       Tie::File   Access the lines of a disk file via a Perl array
1350
1351       Tie::Handle Base class definitions for tied handles
1352
1353       Tie::Hash   Base class definitions for tied hashes
1354
1355       Tie::Hash::NamedCapture
1356                   Named regexp capture buffers
1357
1358       Tie::Memoize
1359                   Add data to hash when needed
1360
1361       Tie::RefHash
1362                   Use references as hash keys
1363
1364       Tie::Scalar Base class definitions for tied scalars
1365
1366       Tie::StdHandle
1367                   Base class definitions for tied handles
1368
1369       Tie::SubstrHash
1370                   Fixed-table-size, fixed-key-length hashing
1371
1372       Time::HiRes High resolution alarm, sleep, gettimeofday, interval timers
1373
1374       Time::Local Efficiently compute time from local and GMT time
1375
1376       Time::Piece Object Oriented time objects
1377
1378       Time::Seconds
1379                   A simple API to convert seconds to other date values
1380
1381       Time::gmtime
1382                   By-name interface to Perl's built-in gmtime() function
1383
1384       Time::localtime
1385                   By-name interface to Perl's built-in localtime() function
1386
1387       Time::tm    Internal object used by Time::gmtime and Time::localtime
1388
1389       UNIVERSAL   Base class for ALL classes (blessed references)
1390
1391       Unicode::Collate
1392                   Unicode Collation Algorithm
1393
1394       Unicode::Normalize
1395                   Unicode Normalization Forms
1396
1397       Unicode::UCD
1398                   Unicode character database
1399
1400       User::grent By-name interface to Perl's built-in getgr*() functions
1401
1402       User::pwent By-name interface to Perl's built-in getpw*() functions
1403
1404       Win32       Interfaces to some Win32 API Functions
1405
1406       Win32API::File
1407                   Low-level access to Win32 system API calls for files/dirs.
1408
1409       Win32CORE   Win32 CORE function stubs
1410
1411       XS::APItest Test the perl C API
1412
1413       XS::Typemap Module to test the XS typemaps distributed with perl
1414
1415       XSLoader    Dynamically load C libraries into Perl code
1416
1417       version::Internal
1418                   Perl extension for Version Objects
1419
1420       To find out all modules installed on your system, including those
1421       without documentation or outside the standard release, just use the
1422       following command (under the default win32 shell, double quotes should
1423       be used instead of single quotes).
1424
1425           % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
1426             'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
1427             no_chdir => 1 }, @INC'
1428
1429       (The -T is here to prevent '.' from being listed in @INC.)  They should
1430       all have their own documentation installed and accessible via your
1431       system man(1) command.  If you do not have a find program, you can use
1432       the Perl find2perl program instead, which generates Perl code as output
1433       you can run through perl.  If you have a man program but it doesn't
1434       find your modules, you'll have to fix your manpath.  See perl for
1435       details.  If you have no system man command, you might try the perldoc
1436       program.
1437
1438       Note also that the command "perldoc perllocal" gives you a (possibly
1439       incomplete) list of the modules that have been further installed on
1440       your system. (The perllocal.pod file is updated by the standard
1441       MakeMaker install process.)
1442
1443   Extension Modules
1444       Extension modules are written in C (or a mix of Perl and C).  They are
1445       usually dynamically loaded into Perl if and when you need them, but may
1446       also be linked in statically.  Supported extension modules include
1447       Socket, Fcntl, and POSIX.
1448
1449       Many popular C extension modules do not come bundled (at least, not
1450       completely) due to their sizes, volatility, or simply lack of time for
1451       adequate testing and configuration across the multitude of platforms on
1452       which Perl was beta-tested.  You are encouraged to look for them on
1453       CPAN (described below), or using web search engines like Alta Vista or
1454       Google.
1455

CPAN

1457       CPAN stands for Comprehensive Perl Archive Network; it's a globally
1458       replicated trove of Perl materials, including documentation, style
1459       guides, tricks and traps, alternate ports to non-Unix systems and
1460       occasional binary distributions for these.   Search engines for CPAN
1461       can be found at http://www.cpan.org/
1462
1463       Most importantly, CPAN includes around a thousand unbundled modules,
1464       some of which require a C compiler to build.  Major categories of
1465       modules are:
1466
1467       ·   Language Extensions and Documentation Tools
1468
1469       ·   Development Support
1470
1471       ·   Operating System Interfaces
1472
1473       ·   Networking, Device Control (modems) and InterProcess Communication
1474
1475       ·   Data Types and Data Type Utilities
1476
1477       ·   Database Interfaces
1478
1479       ·   User Interfaces
1480
1481       ·   Interfaces to / Emulations of Other Programming Languages
1482
1483       ·   File Names, File Systems and File Locking (see also File Handles)
1484
1485       ·   String Processing, Language Text Processing, Parsing, and Searching
1486
1487       ·   Option, Argument, Parameter, and Configuration File Processing
1488
1489       ·   Internationalization and Locale
1490
1491       ·   Authentication, Security, and Encryption
1492
1493       ·   World Wide Web, HTML, HTTP, CGI, MIME
1494
1495       ·   Server and Daemon Utilities
1496
1497       ·   Archiving and Compression
1498
1499       ·   Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1500
1501       ·   Mail and Usenet News
1502
1503       ·   Control Flow Utilities (callbacks and exceptions etc)
1504
1505       ·   File Handle and Input/Output Stream Utilities
1506
1507       ·   Miscellaneous Modules
1508
1509       The list of the registered CPAN sites as of this writing follows.
1510       Please note that the sorting order is alphabetical on fields:
1511
1512       Continent
1513          |
1514          |-->Country
1515                |
1516                |-->[state/province]
1517                          |
1518                          |-->ftp
1519                          |
1520                          |-->[http]
1521
1522       and thus the North American servers happen to be listed between the
1523       European and the South American sites.
1524
1525       You should try to choose one close to you.
1526
1527   Africa
1528       South Africa
1529                                 http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1530                                 ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1531                                 ftp://ftp.is.co.za/programming/perl/CPAN/
1532                                 ftp://ftp.saix.net/pub/CPAN/
1533                                 ftp://ftp.sun.ac.za/CPAN/CPAN/
1534
1535   Asia
1536       China
1537                                 http://cpan.linuxforum.net/
1538                                 http://cpan.shellhung.org/
1539                                 ftp://ftp.shellhung.org/pub/CPAN
1540                                 ftp://mirrors.hknet.com/CPAN
1541
1542       Indonesia
1543                                 http://mirrors.tf.itb.ac.id/cpan/
1544                                 http://cpan.cbn.net.id/
1545                                 ftp://ftp.cbn.net.id/mirror/CPAN
1546
1547       Israel
1548                                 ftp://ftp.iglu.org.il/pub/CPAN/
1549                                 http://cpan.lerner.co.il/
1550                                 http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1551                                 ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1552
1553       Japan
1554                                 ftp://ftp.u-aizu.ac.jp/pub/CPAN
1555                                 ftp://ftp.kddlabs.co.jp/CPAN/
1556                                 ftp://ftp.ayamura.org/pub/CPAN/
1557                                 ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1558                                 http://ftp.cpan.jp/
1559                                 ftp://ftp.cpan.jp/CPAN/
1560                                 ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1561                                 ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1562
1563       Malaysia
1564                                 http://cpan.MyBSD.org.my
1565                                 http://mirror.leafbug.org/pub/CPAN
1566                                 http://ossig.mncc.com.my/mirror/pub/CPAN
1567
1568       Russian Federation
1569                                 http://cpan.tomsk.ru
1570                                 ftp://cpan.tomsk.ru/
1571
1572       Saudi Arabia
1573                                 ftp://ftp.isu.net.sa/pub/CPAN/
1574
1575       Singapore
1576                                 http://CPAN.en.com.sg/
1577                                 ftp://cpan.en.com.sg/
1578                                 http://mirror.averse.net/pub/CPAN
1579                                 ftp://mirror.averse.net/pub/CPAN
1580                                 http://cpan.oss.eznetsols.org
1581                                 ftp://ftp.oss.eznetsols.org/cpan
1582
1583       South Korea
1584                                 http://CPAN.bora.net/
1585                                 ftp://ftp.bora.net/pub/CPAN/
1586                                 http://mirror.kr.FreeBSD.org/CPAN
1587                                 ftp://ftp.kr.FreeBSD.org/pub/CPAN
1588
1589       Taiwan
1590                                 ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
1591                                 http://cpan.cdpa.nsysu.edu.tw/
1592                                 ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
1593                                 http://ftp.isu.edu.tw/pub/CPAN
1594                                 ftp://ftp.isu.edu.tw/pub/CPAN
1595                                 ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1596                                 http://ftp.tku.edu.tw/pub/CPAN/
1597                                 ftp://ftp.tku.edu.tw/pub/CPAN/
1598
1599       Thailand
1600                                 ftp://ftp.loxinfo.co.th/pub/cpan/
1601                                 ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1602
1603   Central America
1604       Costa Rica
1605                                 http://ftp.ucr.ac.cr/Unix/CPAN/
1606                                 ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1607
1608   Europe
1609       Austria
1610                                 http://cpan.inode.at/
1611                                 ftp://cpan.inode.at
1612                                 ftp://ftp.tuwien.ac.at/pub/CPAN/
1613
1614       Belgium
1615                                 http://ftp.easynet.be/pub/CPAN/
1616                                 ftp://ftp.easynet.be/pub/CPAN/
1617                                 http://cpan.skynet.be
1618                                 ftp://ftp.cpan.skynet.be/pub/CPAN
1619                                 ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1620
1621       Bosnia and Herzegovina
1622                                 http://cpan.blic.net/
1623
1624       Bulgaria
1625                                 http://cpan.online.bg
1626                                 ftp://cpan.online.bg/cpan
1627                                 http://cpan.zadnik.org
1628                                 ftp://ftp.zadnik.org/mirrors/CPAN/
1629                                 http://cpan.lirex.net/
1630                                 ftp://ftp.lirex.net/pub/mirrors/CPAN
1631
1632       Croatia
1633                                 http://ftp.linux.hr/pub/CPAN/
1634                                 ftp://ftp.linux.hr/pub/CPAN/
1635
1636       Czech Republic
1637                                 ftp://ftp.fi.muni.cz/pub/CPAN/
1638                                 ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1639
1640       Denmark
1641                                 http://mirrors.sunsite.dk/cpan/
1642                                 ftp://sunsite.dk/mirrors/cpan/
1643                                 http://cpan.cybercity.dk
1644                                 http://www.cpan.dk/CPAN/
1645                                 ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1646
1647       Estonia
1648                                 ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1649
1650       Finland
1651                                 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1652                                 http://mirror.eunet.fi/CPAN
1653
1654       France
1655                                 http://www.enstimac.fr/Perl/CPAN
1656                                 http://ftp.u-paris10.fr/perl/CPAN
1657                                 ftp://ftp.u-paris10.fr/perl/CPAN
1658                                 http://cpan.mirrors.easynet.fr/
1659                                 ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1660                                 ftp://ftp.club-internet.fr/pub/perl/CPAN/
1661                                 http://fr.cpan.org/
1662                                 ftp://ftp.lip6.fr/pub/perl/CPAN/
1663                                 ftp://ftp.oleane.net/pub/mirrors/CPAN/
1664                                 ftp://ftp.pasteur.fr/pub/computing/CPAN/
1665                                 http://mir2.ovh.net/ftp.cpan.org
1666                                 ftp://mir1.ovh.net/ftp.cpan.org
1667                                 http://ftp.crihan.fr/mirrors/ftp.cpan.org/
1668                                 ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
1669                                 http://ftp.u-strasbg.fr/CPAN
1670                                 ftp://ftp.u-strasbg.fr/CPAN
1671                                 ftp://cpan.cict.fr/pub/CPAN/
1672                                 ftp://ftp.uvsq.fr/pub/perl/CPAN/
1673
1674       Germany
1675                                 ftp://ftp.rub.de/pub/CPAN/
1676                                 ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1677                                 ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1678                                 ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1679                                 http://pandemonium.tiscali.de/pub/CPAN/
1680                                 ftp://pandemonium.tiscali.de/pub/CPAN/
1681                                 http://ftp.gwdg.de/pub/languages/perl/CPAN/
1682                                 ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1683                                 ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1684                                 ftp://ftp.leo.org/pub/CPAN/
1685                                 http://cpan.noris.de/
1686                                 ftp://cpan.noris.de/pub/CPAN/
1687                                 ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1688                                 ftp://ftp.gmd.de/mirrors/CPAN/
1689
1690       Greece
1691                                 ftp://ftp.acn.gr/pub/lang/perl
1692                                 ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1693                                 ftp://ftp.ntua.gr/pub/lang/perl/
1694
1695       Hungary
1696                                 http://ftp.kfki.hu/packages/perl/CPAN/
1697                                 ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1698
1699       Iceland
1700                                 http://ftp.rhnet.is/pub/CPAN/
1701                                 ftp://ftp.rhnet.is/pub/CPAN/
1702
1703       Ireland
1704                                 http://cpan.indigo.ie/
1705                                 ftp://cpan.indigo.ie/pub/CPAN/
1706                                 http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1707                                 ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1708                                 http://sunsite.compapp.dcu.ie/pub/perl/
1709                                 ftp://sunsite.compapp.dcu.ie/pub/perl/
1710
1711       Italy
1712                                 http://cpan.nettuno.it/
1713                                 http://gusp.dyndns.org/CPAN/
1714                                 ftp://gusp.dyndns.org/pub/CPAN
1715                                 http://softcity.iol.it/cpan
1716                                 ftp://softcity.iol.it/pub/cpan
1717                                 ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1718                                 ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1719                                 ftp://cis.uniRoma2.it/CPAN/
1720                                 ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1721                                 http://cpan.flashnet.it/
1722                                 ftp://ftp.flashnet.it/pub/CPAN/
1723
1724       Latvia
1725                                 http://kvin.lv/pub/CPAN/
1726
1727       Lithuania
1728                                 ftp://ftp.unix.lt/pub/CPAN/
1729
1730       Netherlands
1731                                 ftp://download.xs4all.nl/pub/mirror/CPAN/
1732                                 ftp://ftp.nl.uu.net/pub/CPAN/
1733                                 ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1734                                 http://cpan.cybercomm.nl/
1735                                 ftp://mirror.cybercomm.nl/pub/CPAN
1736                                 ftp://mirror.vuurwerk.nl/pub/CPAN/
1737                                 ftp://ftp.cpan.nl/pub/CPAN/
1738                                 http://ftp.easynet.nl/mirror/CPAN
1739                                 ftp://ftp.easynet.nl/mirror/CPAN
1740                                 http://archive.cs.uu.nl/mirror/CPAN/
1741                                 ftp://ftp.cs.uu.nl/mirror/CPAN/
1742
1743       Norway
1744                                 ftp://ftp.uninett.no/pub/languages/perl/CPAN
1745                                 ftp://ftp.uit.no/pub/languages/perl/cpan/
1746
1747       Poland
1748                                 ftp://ftp.mega.net.pl/CPAN
1749                                 ftp://ftp.man.torun.pl/pub/doc/CPAN/
1750                                 ftp://sunsite.icm.edu.pl/pub/CPAN/
1751
1752       Portugal
1753                                 ftp://ftp.ua.pt/pub/CPAN/
1754                                 ftp://perl.di.uminho.pt/pub/CPAN/
1755                                 http://cpan.dei.uc.pt/
1756                                 ftp://ftp.dei.uc.pt/pub/CPAN
1757                                 ftp://ftp.nfsi.pt/pub/CPAN
1758                                 http://ftp.linux.pt/pub/mirrors/CPAN
1759                                 ftp://ftp.linux.pt/pub/mirrors/CPAN
1760                                 http://cpan.ip.pt/
1761                                 ftp://cpan.ip.pt/pub/cpan/
1762                                 http://cpan.telepac.pt/
1763                                 ftp://ftp.telepac.pt/pub/cpan/
1764
1765       Romania
1766                                 ftp://ftp.bio-net.ro/pub/CPAN
1767                                 ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1768                                 ftp://ftp.lug.ro/CPAN
1769                                 ftp://ftp.roedu.net/pub/CPAN/
1770                                 ftp://ftp.dntis.ro/pub/cpan/
1771                                 ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
1772                                 http://cpan.ambra.ro/
1773                                 ftp://ftp.ambra.ro/pub/CPAN
1774                                 ftp://ftp.dnttm.ro/pub/CPAN/
1775                                 ftp://ftp.lasting.ro/pub/CPAN
1776                                 ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1777
1778       Russia
1779                                 ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1780                                 http://cpan.rinet.ru/
1781                                 ftp://cpan.rinet.ru/pub/mirror/CPAN/
1782                                 ftp://ftp.aha.ru/pub/CPAN/
1783                                 ftp://ftp.corbina.ru/pub/CPAN/
1784                                 http://cpan.sai.msu.ru/
1785                                 ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1786
1787       Slovakia
1788                                 ftp://ftp.cvt.stuba.sk/pub/CPAN/
1789
1790       Slovenia
1791                                 ftp://ftp.arnes.si/software/perl/CPAN/
1792
1793       Spain
1794                                 http://cpan.imasd.elmundo.es/
1795                                 ftp://ftp.rediris.es/mirror/CPAN/
1796                                 ftp://ftp.ri.telefonica-data.net/CPAN
1797                                 ftp://ftp.etse.urv.es/pub/perl/
1798
1799       Sweden
1800                                 http://ftp.du.se/CPAN/
1801                                 ftp://ftp.du.se/pub/CPAN/
1802                                 http://mirror.dataphone.se/CPAN
1803                                 ftp://mirror.dataphone.se/pub/CPAN
1804                                 ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1805
1806       Switzerland
1807                                 http://cpan.mirror.solnet.ch/
1808                                 ftp://ftp.solnet.ch/mirror/CPAN/
1809                                 ftp://ftp.danyk.ch/CPAN/
1810                                 ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1811
1812       Turkey
1813                                 http://ftp.ulak.net.tr/perl/CPAN/
1814                                 ftp://ftp.ulak.net.tr/perl/CPAN
1815                                 ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1816
1817       Ukraine
1818                                 http://cpan.org.ua/
1819                                 ftp://cpan.org.ua/
1820                                 ftp://ftp.perl.org.ua/pub/CPAN/
1821                                 http://no-more.kiev.ua/CPAN/
1822                                 ftp://no-more.kiev.ua/pub/CPAN/
1823
1824       United Kingdom
1825                                 http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1826                                 ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1827                                 http://cpan.teleglobe.net/
1828                                 ftp://cpan.teleglobe.net/pub/CPAN
1829                                 http://cpan.mirror.anlx.net/
1830                                 ftp://ftp.mirror.anlx.net/CPAN/
1831                                 http://cpan.etla.org/
1832                                 ftp://cpan.etla.org/pub/CPAN
1833                                 ftp://ftp.demon.co.uk/pub/CPAN/
1834                                 http://cpan.m.flirble.org/
1835                                 ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1836                                 ftp://ftp.plig.org/pub/CPAN/
1837                                 http://cpan.hambule.co.uk/
1838                                 http://cpan.mirrors.clockerz.net/
1839                                 ftp://ftp.clockerz.net/pub/CPAN/
1840                                 ftp://usit.shef.ac.uk/pub/packages/CPAN/
1841
1842   North America
1843       Canada
1844           Alberta
1845                                         http://cpan.sunsite.ualberta.ca/
1846                                         ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
1847
1848           Manitoba
1849                                         http://theoryx5.uwinnipeg.ca/pub/CPAN/
1850                                         ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1851
1852           Nova Scotia
1853                                         ftp://cpan.chebucto.ns.ca/pub/CPAN/
1854
1855           Ontario
1856                                         ftp://ftp.nrc.ca/pub/CPAN/
1857
1858       Mexico
1859                                 http://cpan.azc.uam.mx
1860                                 ftp://cpan.azc.uam.mx/mirrors/CPAN
1861                                 http://www.cpan.unam.mx/
1862                                 ftp://ftp.unam.mx/pub/CPAN
1863                                 http://www.msg.com.mx/CPAN/
1864                                 ftp://ftp.msg.com.mx/pub/CPAN/
1865
1866       United States
1867           Alabama
1868                                         http://mirror.hiwaay.net/CPAN/
1869                                         ftp://mirror.hiwaay.net/CPAN/
1870
1871           California
1872                                         http://cpan.develooper.com/
1873                                         http://www.cpan.org/
1874                                         ftp://cpan.valueclick.com/pub/CPAN/
1875                                         http://www.mednor.net/ftp/pub/mirrors/CPAN/
1876                                         ftp://ftp.mednor.net/pub/mirrors/CPAN/
1877                                         http://mirrors.gossamer-threads.com/CPAN
1878                                         ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1879                                         http://mirrors.kernel.org/cpan/
1880                                         ftp://mirrors.kernel.org/pub/CPAN
1881                                         http://cpan-sj.viaverio.com/
1882                                         ftp://cpan-sj.viaverio.com/pub/CPAN/
1883                                         http://cpan.digisle.net/
1884                                         ftp://cpan.digisle.net/pub/CPAN
1885                                         http://www.perl.com/CPAN/
1886                                         http://www.uberlan.net/CPAN
1887
1888           Colorado
1889                                         ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1890                                         http://cpan.four10.com
1891
1892           Delaware
1893                                         http://ftp.lug.udel.edu/pub/CPAN
1894                                         ftp://ftp.lug.udel.edu/pub/CPAN
1895
1896           District of Columbia
1897                                         ftp://ftp.dc.aleron.net/pub/CPAN/
1898
1899           Florida
1900                                         ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1901                                         http://mirror.csit.fsu.edu/pub/CPAN/
1902                                         ftp://mirror.csit.fsu.edu/pub/CPAN/
1903                                         http://cpan.mirrors.nks.net/
1904
1905           Indiana
1906                                         ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1907                                         http://cpan.netnitco.net/
1908                                         ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1909                                         http://archive.progeny.com/CPAN/
1910                                         ftp://archive.progeny.com/CPAN/
1911                                         http://fx.saintjoe.edu/pub/CPAN
1912                                         ftp://ftp.saintjoe.edu/pub/CPAN
1913                                         http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1914                                         ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1915
1916           Kentucky
1917                                         http://cpan.uky.edu/
1918                                         ftp://cpan.uky.edu/pub/CPAN/
1919                                         http://slugsite.louisville.edu/cpan
1920                                         ftp://slugsite.louisville.edu/CPAN
1921
1922           Massachusetts
1923                                         http://mirrors.towardex.com/CPAN
1924                                         ftp://mirrors.towardex.com/pub/CPAN
1925                                         ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1926
1927           Michigan
1928                                         ftp://cpan.cse.msu.edu/
1929                                         http://cpan.calvin.edu/pub/CPAN
1930                                         ftp://cpan.calvin.edu/pub/CPAN
1931
1932           Nevada
1933                                         http://www.oss.redundant.com/pub/CPAN
1934                                         ftp://www.oss.redundant.com/pub/CPAN
1935
1936           New Jersey
1937                                         http://ftp.cpanel.net/pub/CPAN/
1938                                         ftp://ftp.cpanel.net/pub/CPAN/
1939                                         http://cpan.teleglobe.net/
1940                                         ftp://cpan.teleglobe.net/pub/CPAN
1941
1942           New York
1943                                         http://cpan.belfry.net/
1944                                         http://cpan.erlbaum.net/
1945                                         ftp://cpan.erlbaum.net/
1946                                         http://cpan.thepirtgroup.com/
1947                                         ftp://cpan.thepirtgroup.com/
1948                                         ftp://ftp.stealth.net/pub/CPAN/
1949                                         http://www.rge.com/pub/languages/perl/
1950                                         ftp://ftp.rge.com/pub/languages/perl/
1951
1952           North Carolina
1953                                         http://www.ibiblio.org/pub/languages/perl/CPAN
1954                                         ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
1955                                         ftp://ftp.duke.edu/pub/perl/
1956                                         ftp://ftp.ncsu.edu/pub/mirror/CPAN/
1957
1958           Oklahoma
1959                                         ftp://ftp.ou.edu/mirrors/CPAN/
1960
1961           Oregon
1962                                         ftp://ftp.orst.edu/pub/CPAN
1963
1964           Pennsylvania
1965                                         http://ftp.epix.net/CPAN/
1966                                         ftp://ftp.epix.net/pub/languages/perl/
1967                                         http://mirrors.phenominet.com/pub/CPAN/
1968                                         ftp://mirrors.phenominet.com/pub/CPAN/
1969                                         http://cpan.pair.com/
1970                                         ftp://cpan.pair.com/pub/CPAN/
1971                                         ftp://carroll.cac.psu.edu/pub/CPAN/
1972
1973           Tennessee
1974                                         ftp://ftp.sunsite.utk.edu/pub/CPAN/
1975
1976           Texas
1977                                         http://ftp.sedl.org/pub/mirrors/CPAN/
1978                                         http://www.binarycode.org/cpan
1979                                         ftp://mirror.telentente.com/pub/CPAN
1980                                         http://mirrors.theonlinerecordstore.com/CPAN
1981
1982           Utah
1983                                         ftp://mirror.xmission.com/CPAN/
1984
1985           Virginia
1986                                         http://cpan-du.viaverio.com/
1987                                         ftp://cpan-du.viaverio.com/pub/CPAN/
1988                                         http://mirrors.rcn.net/pub/lang/CPAN/
1989                                         ftp://mirrors.rcn.net/pub/lang/CPAN/
1990                                         http://perl.secsup.org/
1991                                         ftp://perl.secsup.org/pub/perl/
1992                                         http://noc.cvaix.com/mirrors/CPAN/
1993
1994           Washington
1995                                         http://cpan.llarian.net/
1996                                         ftp://cpan.llarian.net/pub/CPAN/
1997                                         http://cpan.mirrorcentral.com/
1998                                         ftp://ftp.mirrorcentral.com/pub/CPAN/
1999                                         ftp://ftp-mirror.internap.com/pub/CPAN/
2000
2001           Wisconsin
2002                                         http://mirror.sit.wisc.edu/pub/CPAN/
2003                                         ftp://mirror.sit.wisc.edu/pub/CPAN/
2004                                         http://mirror.aphix.com/CPAN
2005                                         ftp://mirror.aphix.com/pub/CPAN
2006
2007   Oceania
2008       Australia
2009                                 http://ftp.planetmirror.com/pub/CPAN/
2010                                 ftp://ftp.planetmirror.com/pub/CPAN/
2011                                 ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
2012                                 ftp://cpan.topend.com.au/pub/CPAN/
2013                                 http://cpan.mirrors.ilisys.com.au
2014
2015       New Zealand
2016                                 ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
2017
2018       United States
2019                                 http://aniani.ifa.hawaii.edu/CPAN/
2020                                 ftp://aniani.ifa.hawaii.edu/CPAN/
2021
2022   South America
2023       Argentina
2024                                 ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
2025                                 http://www.linux.org.ar/mirrors/cpan
2026                                 ftp://ftp.linux.org.ar/mirrors/cpan
2027
2028       Brazil
2029                                 ftp://cpan.pop-mg.com.br/pub/CPAN/
2030                                 ftp://ftp.matrix.com.br/pub/perl/CPAN/
2031                                 http://cpan.hostsul.com.br/
2032                                 ftp://cpan.hostsul.com.br/
2033
2034       Chile
2035                                 http://cpan.netglobalis.net/
2036                                 ftp://cpan.netglobalis.net/pub/CPAN/
2037
2038   RSYNC Mirrors
2039                             www.linux.org.ar::cpan
2040                             theoryx5.uwinnipeg.ca::CPAN
2041                             ftp.shellhung.org::CPAN
2042                             rsync.nic.funet.fi::CPAN
2043                             ftp.u-paris10.fr::CPAN
2044                             mir1.ovh.net::CPAN
2045                             rsync://ftp.crihan.fr::CPAN
2046                             ftp.gwdg.de::FTP/languages/perl/CPAN/
2047                             ftp.leo.org::CPAN
2048                             ftp.cbn.net.id::CPAN
2049                             rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2050                             ftp.iglu.org.il::CPAN
2051                             gusp.dyndns.org::cpan
2052                             ftp.kddlabs.co.jp::cpan
2053                             ftp.ayamura.org::pub/CPAN/
2054                             mirror.leafbug.org::CPAN
2055                             rsync.en.com.sg::CPAN
2056                             mirror.averse.net::cpan
2057                             rsync.oss.eznetsols.org
2058                             ftp.kr.FreeBSD.org::CPAN
2059                             ftp.solnet.ch::CPAN
2060                             cpan.cdpa.nsysu.edu.tw::CPAN
2061                             cpan.teleglobe.net::CPAN
2062                             rsync://rsync.mirror.anlx.net::CPAN
2063                             ftp.sedl.org::cpan
2064                             ibiblio.org::CPAN
2065                             cpan-du.viaverio.com::CPAN
2066                             aniani.ifa.hawaii.edu::CPAN
2067                             archive.progeny.com::CPAN
2068                             rsync://slugsite.louisville.edu::CPAN
2069                             mirror.aphix.com::CPAN
2070                             cpan.teleglobe.net::CPAN
2071                             ftp.lug.udel.edu::cpan
2072                             mirrors.kernel.org::mirrors/CPAN
2073                             mirrors.phenominet.com::CPAN
2074                             cpan.pair.com::CPAN
2075                             cpan-sj.viaverio.com::CPAN
2076                             mirror.csit.fsu.edu::CPAN
2077                             csociety-ftp.ecn.purdue.edu::CPAN
2078
2079       For an up-to-date listing of CPAN sites, see http://www.cpan.org/SITES
2080       or ftp://www.cpan.org/SITES .
2081

Modules: Creation, Use, and Abuse

2083       (The following section is borrowed directly from Tim Bunce's modules
2084       file, available at your nearest CPAN site.)
2085
2086       Perl implements a class using a package, but the presence of a package
2087       doesn't imply the presence of a class.  A package is just a namespace.
2088       A class is a package that provides subroutines that can be used as
2089       methods.  A method is just a subroutine that expects, as its first
2090       argument, either the name of a package (for "static" methods), or a
2091       reference to something (for "virtual" methods).
2092
2093       A module is a file that (by convention) provides a class of the same
2094       name (sans the .pm), plus an import method in that class that can be
2095       called to fetch exported symbols.  This module may implement some of
2096       its methods by loading dynamic C or C++ objects, but that should be
2097       totally transparent to the user of the module.  Likewise, the module
2098       might set up an AUTOLOAD function to slurp in subroutine definitions on
2099       demand, but this is also transparent.  Only the .pm file is required to
2100       exist.  See perlsub, perltoot, and AutoLoader for details about the
2101       AUTOLOAD mechanism.
2102
2103   Guidelines for Module Creation
2104       ·   Do similar modules already exist in some form?
2105
2106           If so, please try to reuse the existing modules either in whole or
2107           by inheriting useful features into a new class.  If this is not
2108           practical try to get together with the module authors to work on
2109           extending or enhancing the functionality of the existing modules.
2110           A perfect example is the plethora of packages in perl4 for dealing
2111           with command line options.
2112
2113           If you are writing a module to expand an already existing set of
2114           modules, please coordinate with the author of the package.  It
2115           helps if you follow the same naming scheme and module interaction
2116           scheme as the original author.
2117
2118       ·   Try to design the new module to be easy to extend and reuse.
2119
2120           Try to "use warnings;" (or "use warnings qw(...);").  Remember that
2121           you can add "no warnings qw(...);" to individual blocks of code
2122           that need less warnings.
2123
2124           Use blessed references.  Use the two argument form of bless to
2125           bless into the class name given as the first parameter of the
2126           constructor, e.g.,:
2127
2128            sub new {
2129                my $class = shift;
2130                return bless {}, $class;
2131            }
2132
2133           or even this if you'd like it to be used as either a static or a
2134           virtual method.
2135
2136            sub new {
2137                my $self  = shift;
2138                my $class = ref($self) || $self;
2139                return bless {}, $class;
2140            }
2141
2142           Pass arrays as references so more parameters can be added later
2143           (it's also faster).  Convert functions into methods where
2144           appropriate.  Split large methods into smaller more flexible ones.
2145           Inherit methods from other modules if appropriate.
2146
2147           Avoid class name tests like: "die "Invalid" unless ref $ref eq
2148           'FOO'".  Generally you can delete the "eq 'FOO'" part with no harm
2149           at all.  Let the objects look after themselves! Generally, avoid
2150           hard-wired class names as far as possible.
2151
2152           Avoid "$r->Class::func()" where using "@ISA=qw(... Class ...)" and
2153           "$r->func()" would work (see perlbot for more details).
2154
2155           Use autosplit so little used or newly added functions won't be a
2156           burden to programs that don't use them. Add test functions to the
2157           module after __END__ either using AutoSplit or by saying:
2158
2159            eval join('',<main::DATA>) || die $@ unless caller();
2160
2161           Does your module pass the 'empty subclass' test? If you say
2162           "@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able
2163           to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
2164           does your application still work if you change:  "$obj =
2165           YOURCLASS->new();" into: "$obj = SUBCLASS->new();" ?
2166
2167           Avoid keeping any state information in your packages. It makes it
2168           difficult for multiple other packages to use yours. Keep state
2169           information in objects.
2170
2171           Always use -w.
2172
2173           Try to "use strict;" (or "use strict qw(...);").  Remember that you
2174           can add "no strict qw(...);" to individual blocks of code that need
2175           less strictness.
2176
2177           Always use -w.
2178
2179           Follow the guidelines in the perlstyle(1) manual.
2180
2181           Always use -w.
2182
2183       ·   Some simple style guidelines
2184
2185           The perlstyle manual supplied with Perl has many helpful points.
2186
2187           Coding style is a matter of personal taste. Many people evolve
2188           their style over several years as they learn what helps them write
2189           and maintain good code.  Here's one set of assorted suggestions
2190           that seem to be widely used by experienced developers:
2191
2192           Use underscores to separate words.  It is generally easier to read
2193           $var_names_like_this than $VarNamesLikeThis, especially for non-
2194           native speakers of English. It's also a simple rule that works
2195           consistently with VAR_NAMES_LIKE_THIS.
2196
2197           Package/Module names are an exception to this rule. Perl informally
2198           reserves lowercase module names for 'pragma' modules like integer
2199           and strict. Other modules normally begin with a capital letter and
2200           use mixed case with no underscores (need to be short and portable).
2201
2202           You may find it helpful to use letter case to indicate the scope or
2203           nature of a variable. For example:
2204
2205            $ALL_CAPS_HERE   constants only (beware clashes with Perl vars)
2206            $Some_Caps_Here  package-wide global/static
2207            $no_caps_here    function scope my() or local() variables
2208
2209           Function and method names seem to work best as all lowercase.
2210           e.g., "$obj->as_string()".
2211
2212           You can use a leading underscore to indicate that a variable or
2213           function should not be used outside the package that defined it.
2214
2215       ·   Select what to export.
2216
2217           Do NOT export method names!
2218
2219           Do NOT export anything else by default without a good reason!
2220
2221           Exports pollute the namespace of the module user.  If you must
2222           export try to use @EXPORT_OK in preference to @EXPORT and avoid
2223           short or common names to reduce the risk of name clashes.
2224
2225           Generally anything not exported is still accessible from outside
2226           the module using the ModuleName::item_name (or
2227           "$blessed_ref->method") syntax.  By convention you can use a
2228           leading underscore on names to indicate informally that they are
2229           'internal' and not for public use.
2230
2231           (It is actually possible to get private functions by saying: "my
2232           $subref = sub { ... };  &$subref;".  But there's no way to call
2233           that directly as a method, because a method must have a name in the
2234           symbol table.)
2235
2236           As a general rule, if the module is trying to be object oriented
2237           then export nothing. If it's just a collection of functions then
2238           @EXPORT_OK anything but use @EXPORT with caution.
2239
2240       ·   Select a name for the module.
2241
2242           This name should be as descriptive, accurate, and complete as
2243           possible.  Avoid any risk of ambiguity. Always try to use two or
2244           more whole words.  Generally the name should reflect what is
2245           special about what the module does rather than how it does it.
2246           Please use nested module names to group informally or categorize a
2247           module.  There should be a very good reason for a module not to
2248           have a nested name.  Module names should begin with a capital
2249           letter.
2250
2251           Having 57 modules all called Sort will not make life easy for
2252           anyone (though having 23 called Sort::Quick is only marginally
2253           better :-).  Imagine someone trying to install your module
2254           alongside many others.  If in any doubt ask for suggestions in
2255           comp.lang.perl.misc.
2256
2257           If you are developing a suite of related modules/classes it's good
2258           practice to use nested classes with a common prefix as this will
2259           avoid namespace clashes. For example: Xyz::Control, Xyz::View,
2260           Xyz::Model etc. Use the modules in this list as a naming guide.
2261
2262           If adding a new module to a set, follow the original author's
2263           standards for naming modules and the interface to methods in those
2264           modules.
2265
2266           If developing modules for private internal or project specific use,
2267           that will never be released to the public, then you should ensure
2268           that their names will not clash with any future public module. You
2269           can do this either by using the reserved Local::* category or by
2270           using a category name that includes an underscore like Foo_Corp::*.
2271
2272           To be portable each component of a module name should be limited to
2273           11 characters. If it might be used on MS-DOS then try to ensure
2274           each is unique in the first 8 characters. Nested modules make this
2275           easier.
2276
2277       ·   Have you got it right?
2278
2279           How do you know that you've made the right decisions? Have you
2280           picked an interface design that will cause problems later? Have you
2281           picked the most appropriate name? Do you have any questions?
2282
2283           The best way to know for sure, and pick up many helpful
2284           suggestions, is to ask someone who knows. Comp.lang.perl.misc is
2285           read by just about all the people who develop modules and it's the
2286           best place to ask.
2287
2288           All you need to do is post a short summary of the module, its
2289           purpose and interfaces. A few lines on each of the main methods is
2290           probably enough. (If you post the whole module it might be ignored
2291           by busy people - generally the very people you want to read it!)
2292
2293           Don't worry about posting if you can't say when the module will be
2294           ready - just say so in the message. It might be worth inviting
2295           others to help you, they may be able to complete it for you!
2296
2297       ·   README and other Additional Files.
2298
2299           It's well known that software developers usually fully document the
2300           software they write. If, however, the world is in urgent need of
2301           your software and there is not enough time to write the full
2302           documentation please at least provide a README file containing:
2303
2304           ·         A description of the module/package/extension etc.
2305
2306           ·         A copyright notice - see below.
2307
2308           ·         Prerequisites - what else you may need to have.
2309
2310           ·         How to build it - possible changes to Makefile.PL etc.
2311
2312           ·         How to install it.
2313
2314           ·         Recent changes in this release, especially
2315                     incompatibilities
2316
2317           ·         Changes / enhancements you plan to make in the future.
2318
2319           If the README file seems to be getting too large you may wish to
2320           split out some of the sections into separate files: INSTALL,
2321           Copying, ToDo etc.
2322
2323           ·   Adding a Copyright Notice.
2324
2325               How you choose to license your work is a personal decision.
2326               The general mechanism is to assert your Copyright and then make
2327               a declaration of how others may copy/use/modify your work.
2328
2329               Perl, for example, is supplied with two types of licence: The
2330               GNU GPL and The Artistic Licence (see the files README,
2331               Copying, and Artistic, or perlgpl and perlartistic).  Larry has
2332               good reasons for NOT just using the GNU GPL.
2333
2334               My personal recommendation, out of respect for Larry, Perl, and
2335               the Perl community at large is to state something simply like:
2336
2337                Copyright (c) 1995 Your Name. All rights reserved.
2338                This program is free software; you can redistribute it and/or
2339                modify it under the same terms as Perl itself.
2340
2341               This statement should at least appear in the README file. You
2342               may also wish to include it in a Copying file and your source
2343               files.  Remember to include the other words in addition to the
2344               Copyright.
2345
2346           ·   Give the module a version/issue/release number.
2347
2348               To be fully compatible with the Exporter and MakeMaker modules
2349               you should store your module's version number in a non-my
2350               package variable called $VERSION.  This should be a floating
2351               point number with at least two digits after the decimal (i.e.,
2352               hundredths, e.g, "$VERSION = "0.01"").  Don't use a "1.3.2"
2353               style version.  See Exporter for details.
2354
2355               It may be handy to add a function or method to retrieve the
2356               number.  Use the number in announcements and archive file names
2357               when releasing the module (ModuleName-1.02.tar.Z).  See perldoc
2358               ExtUtils::MakeMaker.pm for details.
2359
2360           ·   How to release and distribute a module.
2361
2362               It's good idea to post an announcement of the availability of
2363               your module (or the module itself if small) to the
2364               comp.lang.perl.announce Usenet newsgroup.  This will at least
2365               ensure very wide once-off distribution.
2366
2367               If possible, register the module with CPAN.  You should include
2368               details of its location in your announcement.
2369
2370               Some notes about ftp archives: Please use a long descriptive
2371               file name that includes the version number. Most incoming
2372               directories will not be readable/listable, i.e., you won't be
2373               able to see your file after uploading it. Remember to send your
2374               email notification message as soon as possible after uploading
2375               else your file may get deleted automatically. Allow time for
2376               the file to be processed and/or check the file has been
2377               processed before announcing its location.
2378
2379               FTP Archives for Perl Modules:
2380
2381               Follow the instructions and links on:
2382
2383                  http://www.cpan.org/modules/00modlist.long.html
2384                  http://www.cpan.org/modules/04pause.html
2385
2386               or upload to one of these sites:
2387
2388                  https://pause.kbx.de/pause/
2389                  http://pause.perl.org/pause/
2390
2391               and notify <modules@perl.org>.
2392
2393               By using the WWW interface you can ask the Upload Server to
2394               mirror your modules from your ftp or WWW site into your own
2395               directory on CPAN!
2396
2397               Please remember to send me an updated entry for the Module
2398               list!
2399
2400           ·   Take care when changing a released module.
2401
2402               Always strive to remain compatible with previous released
2403               versions.  Otherwise try to add a mechanism to revert to the
2404               old behavior if people rely on it.  Document incompatible
2405               changes.
2406
2407   Guidelines for Converting Perl 4 Library Scripts into Modules
2408       ·   There is no requirement to convert anything.
2409
2410           If it ain't broke, don't fix it! Perl 4 library scripts should
2411           continue to work with no problems. You may need to make some minor
2412           changes (like escaping non-array @'s in double quoted strings) but
2413           there is no need to convert a .pl file into a Module for just that.
2414
2415       ·   Consider the implications.
2416
2417           All Perl applications that make use of the script will need to be
2418           changed (slightly) if the script is converted into a module.  Is it
2419           worth it unless you plan to make other changes at the same time?
2420
2421       ·   Make the most of the opportunity.
2422
2423           If you are going to convert the script to a module you can use the
2424           opportunity to redesign the interface.  The guidelines for module
2425           creation above include many of the issues you should consider.
2426
2427       ·   The pl2pm utility will get you started.
2428
2429           This utility will read *.pl files (given as parameters) and write
2430           corresponding *.pm files. The pl2pm utilities does the following:
2431
2432           ·         Adds the standard Module prologue lines
2433
2434           ·         Converts package specifiers from ' to ::
2435
2436           ·         Converts die(...) to croak(...)
2437
2438           ·         Several other minor changes
2439
2440           Being a mechanical process pl2pm is not bullet proof. The converted
2441           code will need careful checking, especially any package statements.
2442           Don't delete the original .pl file till the new .pm one works!
2443
2444   Guidelines for Reusing Application Code
2445       ·   Complete applications rarely belong in the Perl Module Library.
2446
2447       ·   Many applications contain some Perl code that could be reused.
2448
2449           Help save the world! Share your code in a form that makes it easy
2450           to reuse.
2451
2452       ·   Break-out the reusable code into one or more separate module files.
2453
2454       ·   Take the opportunity to reconsider and redesign the interfaces.
2455
2456       ·   In some cases the 'application' can then be reduced to a small
2457
2458           fragment of code built on top of the reusable modules. In these
2459           cases the application could invoked as:
2460
2461                % perl -e 'use Module::Name; method(@ARGV)' ...
2462           or
2463                % perl -mModule::Name ...    (in perl5.002 or higher)
2464

NOTE

2466       Perl does not enforce private and public parts of its modules as you
2467       may have been used to in other languages like C++, Ada, or Modula-17.
2468       Perl doesn't have an infatuation with enforced privacy.  It would
2469       prefer that you stayed out of its living room because you weren't
2470       invited, not because it has a shotgun.
2471
2472       The module and its user have a contract, part of which is common law,
2473       and part of which is "written".  Part of the common law contract is
2474       that a module doesn't pollute any namespace it wasn't asked to.  The
2475       written contract for the module (A.K.A. documentation) may make other
2476       provisions.  But then you know when you "use RedefineTheWorld" that
2477       you're redefining the world and willing to take the consequences.
2478
2479
2480
2481perl v5.10.1                      2017-03-22                     PERLMODLIB(1)
Impressum