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 sup‐
15       plied so that old programs that use them still run.  The .pl files will
16       all eventually be converted into standard modules, and the .ph files
17       made by h2ph will probably end up as extension modules made by h2xs.
18       (Some .ph values may already be available through the POSIX, Errno, or
19       Fcntl modules.)  The pl2pm file in the distribution may help in your
20       conversion, but it's just a mechanical process and therefore far from
21       bulletproof.
22
23       Pragmatic Modules
24
25       They work somewhat like compiler directives (pragmata) in that they
26       tend to affect the compilation of your program, and thus will usually
27       work well only when used within a "use", or "no".  Most of these are
28       lexically scoped, so an inner BLOCK may countermand them by saying:
29
30           no integer;
31           no strict 'refs';
32           no warnings;
33
34       which lasts until the end of that BLOCK.
35
36       Some pragmas are lexically scoped--typically those that affect the $^H
37       hints variable.  Others affect the current package instead, like "use
38       vars" and "use subs", which allow you to predeclare a variables or sub‐
39       routines within a particular file rather than just a block.  Such dec‐
40       larations are effective for the entire file for which they were
41       declared.  You cannot rescind them with "no vars" or "no subs".
42
43       The following pragmas are defined (and have their own documentation).
44
45       attributes  Get/set subroutine or variable attributes
46
47       attrs       Set/get attributes of a subroutine (deprecated)
48
49       autouse     Postpone load of modules until a function is used
50
51       base        Establish IS-A relationship with base classes at compile
52                   time
53
54       bigint      Transparent BigInteger support for Perl
55
56       bignum      Transparent BigNumber support for Perl
57
58       bigrat      Transparent BigNumber/BigRational support for Perl
59
60       blib        Use MakeMaker's uninstalled version of a package
61
62       bytes       Force byte semantics rather than character semantics
63
64       charnames   Define character names for "\N{named}" string literal
65                   escapes
66
67       constant    Declare constants
68
69       diagnostics Produce verbose warning diagnostics
70
71       encoding    Allows you to write your script in non-ascii or non-utf8
72
73       fields      Compile-time class fields
74
75       filetest    Control the filetest permission operators
76
77       if          "use" a Perl module if a condition holds
78
79       integer     Use integer arithmetic instead of floating point
80
81       less        Request less of something from the compiler
82
83       lib         Manipulate @INC at compile time
84
85       locale      Use and avoid POSIX locales for built-in operations
86
87       open        Set default PerlIO layers for input and output
88
89       ops         Restrict unsafe operations when compiling
90
91       overload    Package for overloading Perl operations
92
93       re          Alter regular expression behaviour
94
95       sigtrap     Enable simple signal handling
96
97       sort        Control sort() behaviour
98
99       strict      Restrict unsafe constructs
100
101       subs        Predeclare sub names
102
103       threads     Perl extension allowing use of interpreter based threads
104                   from perl
105
106       threads::shared
107                   Perl extension for sharing data structures between threads
108
109       utf8        Enable/disable UTF-8 (or UTF-EBCDIC) in source code
110
111       vars        Predeclare global variable names (obsolete)
112
113       vmsish      Control VMS-specific language features
114
115       warnings    Control optional warnings
116
117       warnings::register
118                   Warnings import function
119
120       Standard Modules
121
122       Standard, bundled modules are all expected to behave in a well-defined
123       manner with respect to namespace pollution because they use the
124       Exporter module.  See their own documentation for details.
125
126       It's possible that not all modules listed below are installed on your
127       system. For example, the GDBM_File module will not be installed if you
128       don't have the gdbm library.
129
130       AnyDBM_File Provide framework for multiple DBMs
131
132       Attribute::Handlers
133                   Simpler definition of attribute handlers
134
135       AutoLoader  Load subroutines only on demand
136
137       AutoSplit   Split a package for autoloading
138
139       B           The Perl Compiler
140
141       B::Asmdata  Autogenerated data about Perl ops, used to generate byte‐
142                   code
143
144       B::Assembler
145                   Assemble Perl bytecode
146
147       B::Bblock   Walk basic blocks
148
149       B::Bytecode Perl compiler's bytecode backend
150
151       B::C        Perl compiler's C backend
152
153       B::CC       Perl compiler's optimized C translation backend
154
155       B::Concise  Walk Perl syntax tree, printing concise info about ops
156
157       B::Debug    Walk Perl syntax tree, printing debug info about ops
158
159       B::Deparse  Perl compiler backend to produce perl code
160
161       B::Disassembler
162                   Disassemble Perl bytecode
163
164       B::Lint     Perl lint
165
166       B::Showlex  Show lexical variables used in functions or files
167
168       B::Stackobj Helper module for CC backend
169
170       B::Stash    Show what stashes are loaded
171
172       B::Terse    Walk Perl syntax tree, printing terse info about ops
173
174       B::Xref     Generates cross reference reports for Perl programs
175
176       Benchmark   Benchmark running times of Perl code
177
178       ByteLoader  Load byte compiled perl code
179
180       CGI         Simple Common Gateway Interface Class
181
182       CGI::Apache Backward compatibility module for CGI.pm
183
184       CGI::Carp   CGI routines for writing to the HTTPD (or other) error log
185
186       CGI::Cookie Interface to Netscape Cookies
187
188       CGI::Fast   CGI Interface for Fast CGI
189
190       CGI::Pretty Module to produce nicely formatted HTML code
191
192       CGI::Push   Simple Interface to Server Push
193
194       CGI::Switch Backward compatibility module for defunct CGI::Switch
195
196       CGI::Util   Internal utilities used by CGI module
197
198       CPAN        Query, download and build perl modules from CPAN sites
199
200       CPAN::FirstTime
201                   Utility for CPAN::Config file Initialization
202
203       CPAN::Nox   Wrapper around CPAN.pm without using any XS module
204
205       CPAN::Version
206                   Utility functions to compare CPAN versions
207
208       Carp        Warn of errors (from perspective of caller)
209
210       Carp::Heavy Heavy machinery, no user serviceable parts inside
211
212       Class::ISA  Report the search path for a class's ISA tree
213
214       Class::Struct
215                   Declare struct-like datatypes as Perl classes
216
217       Config      Access Perl configuration information
218
219       Cwd         Get pathname of current working directory
220
221       DB          Programmatic interface to the Perl debugging API (draft,
222                   subject to
223
224       DBM_Filter  Filter DBM keys/values
225
226       DB_File     Perl5 access to Berkeley DB version 1.x
227
228       Data::Dumper
229                   Stringified perl data structures, suitable for both print‐
230                   ing and "eval"
231
232       Devel::DProf
233                   A Perl code profiler
234
235       Devel::PPPort
236                   Perl/Pollution/Portability
237
238       Devel::Peek A data debugging tool for the XS programmer
239
240       Devel::SelfStubber
241                   Generate stubs for a SelfLoading module
242
243       Digest      Modules that calculate message digests
244
245       Digest::MD5 Perl interface to the MD5 Algorithm
246
247       Digest::base
248                   Digest base class
249
250       Digest::file
251                   Calculate digests of files
252
253       DirHandle   Supply object methods for directory handles
254
255       Dumpvalue   Provides screen dump of Perl data.
256
257       DynaLoader  Dynamically load C libraries into Perl code
258
259       Encode      Character encodings
260
261       Encode::Alias
262                   Alias definitions to encodings
263
264       Encode::Byte
265                   Single Byte Encodings
266
267       Encode::CJKConstants
268                   Internally used by Encode::??::ISO_2022_*
269
270       Encode::CN  China-based Chinese Encodings
271
272       Encode::CN::HZ
273                   Internally used by Encode::CN
274
275       Encode::Config
276                   Internally used by Encode
277
278       Encode::EBCDIC
279                   EBCDIC Encodings
280
281       Encode::Encoder
282                   Object Oriented Encoder
283
284       Encode::Encoding
285                   Encode Implementation Base Class
286
287       Encode::Guess
288                   Guesses encoding from data
289
290       Encode::JP  Japanese Encodings
291
292       Encode::JP::H2Z
293                   Internally used by Encode::JP::2022_JP*
294
295       Encode::JP::JIS7
296                   Internally used by Encode::JP
297
298       Encode::KR  Korean Encodings
299
300       Encode::KR::2022_KR
301                   Internally used by Encode::KR
302
303       Encode::MIME::Header
304                   MIME 'B' and 'Q' header encoding
305
306       Encode::PerlIO
307                   A detailed document on Encode and PerlIO
308
309       Encode::Supported
310                   Encodings supported by Encode
311
312       Encode::Symbol
313                   Symbol Encodings
314
315       Encode::TW  Taiwan-based Chinese Encodings
316
317       Encode::Unicode
318                   Various Unicode Transformation Formats
319
320       Encode::Unicode::UTF7
321                   UTF-7 encoding
322
323       English     Use nice English (or awk) names for ugly punctuation vari‐
324                   ables
325
326       Env         Perl module that imports environment variables as scalars
327                   or arrays
328
329       Errno       System errno constants
330
331       Exporter    Implements default import method for modules
332
333       Exporter::Heavy
334                   Exporter guts
335
336       ExtUtils::Command
337                   Utilities to replace common UNIX commands in Makefiles etc.
338
339       ExtUtils::Command::MM
340                   Commands for the MM's to use in Makefiles
341
342       ExtUtils::Constant
343                   Generate XS code to import C header constants
344
345       ExtUtils::Constant::Base
346                   Base class for ExtUtils::Constant objects
347
348       ExtUtils::Constant::Utils
349                   Helper functions for ExtUtils::Constant
350
351       ExtUtils::Constant::XS
352                   Base class for ExtUtils::Constant objects
353
354       ExtUtils::Embed
355                   Utilities for embedding Perl in C/C++ applications
356
357       ExtUtils::Install
358                   Install files from here to there
359
360       ExtUtils::Installed
361                   Inventory management of installed modules
362
363       ExtUtils::Liblist
364                   Determine libraries to use and how to use them
365
366       ExtUtils::MM
367                   OS adjusted ExtUtils::MakeMaker subclass
368
369       ExtUtils::MM_AIX
370                   AIX specific subclass of ExtUtils::MM_Unix
371
372       ExtUtils::MM_Any
373                   Platform-agnostic MM methods
374
375       ExtUtils::MM_BeOS
376                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
377
378       ExtUtils::MM_Cygwin
379                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
380
381       ExtUtils::MM_DOS
382                   DOS specific subclass of ExtUtils::MM_Unix
383
384       ExtUtils::MM_MacOS
385                   Once produced Makefiles for MacOS Classic
386
387       ExtUtils::MM_NW5
388                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
389
390       ExtUtils::MM_OS2
391                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
392
393       ExtUtils::MM_QNX
394                   QNX specific subclass of ExtUtils::MM_Unix
395
396       ExtUtils::MM_UWIN
397                   U/WIN specific subclass of ExtUtils::MM_Unix
398
399       ExtUtils::MM_Unix
400                   Methods used by ExtUtils::MakeMaker
401
402       ExtUtils::MM_VMS
403                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
404
405       ExtUtils::MM_VOS
406                   VOS specific subclass of ExtUtils::MM_Unix
407
408       ExtUtils::MM_Win32
409                   Methods to override UN*X behaviour in ExtUtils::MakeMaker
410
411       ExtUtils::MM_Win95
412                   Method to customize MakeMaker for Win9X
413
414       ExtUtils::MY
415                   ExtUtils::MakeMaker subclass for customization
416
417       ExtUtils::MakeMaker
418                   Create a module Makefile
419
420       ExtUtils::MakeMaker::Config
421                   Wrapper around Config.pm
422
423       ExtUtils::MakeMaker::FAQ
424                   Frequently Asked Questions About MakeMaker
425
426       ExtUtils::MakeMaker::Tutorial
427                   Writing a module with MakeMaker
428
429       ExtUtils::MakeMaker::bytes
430                   Version-agnostic bytes.pm
431
432       ExtUtils::MakeMaker::vmsish
433                   Platform-agnostic vmsish.pm
434
435       ExtUtils::Manifest
436                   Utilities to write and check a MANIFEST file
437
438       ExtUtils::Mkbootstrap
439                   Make a bootstrap file for use by DynaLoader
440
441       ExtUtils::Mksymlists
442                   Write linker options files for dynamic extension
443
444       ExtUtils::Packlist
445                   Manage .packlist files
446
447       ExtUtils::testlib
448                   Add blib/* directories to @INC
449
450       Fatal       Replace functions with equivalents which succeed or die
451
452       Fcntl       Load the C Fcntl.h defines
453
454       File::Basename
455                   Parse file paths into directory, filename and suffix.
456
457       File::CheckTree
458                   Run many filetest checks on a tree
459
460       File::Compare
461                   Compare files or filehandles
462
463       File::Copy  Copy files or filehandles
464
465       File::DosGlob
466                   DOS like globbing and then some
467
468       File::Find  Traverse a directory tree.
469
470       File::Glob  Perl extension for BSD glob routine
471
472       File::Path  Create or remove directory trees
473
474       File::Spec  Portably perform operations on file names
475
476       File::Spec::Cygwin
477                   Methods for Cygwin file specs
478
479       File::Spec::Epoc
480                   Methods for Epoc file specs
481
482       File::Spec::Functions
483                   Portably perform operations on file names
484
485       File::Spec::Mac
486                   File::Spec for Mac OS (Classic)
487
488       File::Spec::OS2
489                   Methods for OS/2 file specs
490
491       File::Spec::Unix
492                   File::Spec for Unix, base for other File::Spec modules
493
494       File::Spec::VMS
495                   Methods for VMS file specs
496
497       File::Spec::Win32
498                   Methods for Win32 file specs
499
500       File::Temp  Return name and handle of a temporary file safely
501
502       File::stat  By-name interface to Perl's built-in stat() functions
503
504       FileCache   Keep more files open than the system permits
505
506       FileHandle  Supply object methods for filehandles
507
508       Filter::Simple
509                   Simplified source filtering
510
511       Filter::Util::Call
512                   Perl Source Filter Utility Module
513
514       FindBin     Locate directory of original perl script
515
516       GDBM_File   Perl5 access to the gdbm library.
517
518       Getopt::Long
519                   Extended processing of command line options
520
521       Getopt::Std Process single-character switches with switch clustering
522
523       Hash::Util  A selection of general-utility hash subroutines
524
525       I18N::Collate
526                   Compare 8-bit scalar data according to the current locale
527
528       I18N::LangTags
529                   Functions for dealing with RFC3066-style language tags
530
531       I18N::LangTags::Detect
532                   Detect the user's language preferences
533
534       I18N::LangTags::List
535                   Tags and names for human languages
536
537       I18N::Langinfo
538                   Query locale information
539
540       IO          Load various IO modules
541
542       IO::Dir     Supply object methods for directory handles
543
544       IO::File    Supply object methods for filehandles
545
546       IO::Handle  Supply object methods for I/O handles
547
548       IO::Pipe    Supply object methods for pipes
549
550       IO::Poll    Object interface to system poll call
551
552       IO::Seekable
553                   Supply seek based methods for I/O objects
554
555       IO::Select  OO interface to the select system call
556
557       IO::Socket  Object interface to socket communications
558
559       IO::Socket::INET
560                   Object interface for AF_INET domain sockets
561
562       IO::Socket::UNIX
563                   Object interface for AF_UNIX domain sockets
564
565       IPC::Open2  Open a process for both reading and writing
566
567       IPC::Open3  Open a process for reading, writing, and error handling
568
569       IPC::SysV   SysV IPC constants
570
571       IPC::SysV::Msg
572                   SysV Msg IPC object class
573
574       IPC::SysV::Semaphore
575                   SysV Semaphore IPC object class
576
577       List::Util  A selection of general-utility list subroutines
578
579       Locale::Constants
580                   Constants for Locale codes
581
582       Locale::Country
583                   ISO codes for country identification (ISO 3166)
584
585       Locale::Currency
586                   ISO three letter codes for currency identification (ISO
587                   4217)
588
589       Locale::Language
590                   ISO two letter codes for language identification (ISO 639)
591
592       Locale::Maketext
593                   Framework for localization
594
595       Locale::Maketext::TPJ13
596                   Article about software localization
597
598       Locale::Script
599                   ISO codes for script identification (ISO 15924)
600
601       MIME::Base64
602                   Encoding and decoding of base64 strings
603
604       MIME::Base64::QuotedPrint
605                   Encoding and decoding of quoted-printable strings
606
607       Math::BigFloat
608                   Arbitrary size floating point math package
609
610       Math::BigInt
611                   Arbitrary size integer/float math package
612
613       Math::BigInt::Calc
614                   Pure Perl module to support Math::BigInt
615
616       Math::BigInt::CalcEmu
617                   Emulate low-level math with BigInt code
618
619       Math::BigRat
620                   Arbitrary big rational numbers
621
622       Math::Complex
623                   Complex numbers and associated mathematical functions
624
625       Math::Trig  Trigonometric functions
626
627       Memoize     Make functions faster by trading space for time
628
629       Memoize::AnyDBM_File
630                   Glue to provide EXISTS for AnyDBM_File for Storable use
631
632       Memoize::Expire
633                   Plug-in module for automatic expiration of memoized values
634
635       Memoize::ExpireFile
636                   Test for Memoize expiration semantics
637
638       Memoize::ExpireTest
639                   Test for Memoize expiration semantics
640
641       Memoize::NDBM_File
642                   Glue to provide EXISTS for NDBM_File for Storable use
643
644       Memoize::SDBM_File
645                   Glue to provide EXISTS for SDBM_File for Storable use
646
647       Memoize::Storable
648                   Store Memoized data in Storable database
649
650       NDBM_File   Tied access to ndbm files
651
652       NEXT        Provide a pseudo-class NEXT (et al) that allows method
653                   redispatch
654
655       Net::Cmd    Network Command class (as used by FTP, SMTP etc)
656
657       Net::Config Local configuration data for libnet
658
659       Net::Domain Attempt to evaluate the current host's internet name and
660                   domain
661
662       Net::FTP    FTP Client class
663
664       Net::NNTP   NNTP Client class
665
666       Net::Netrc  OO interface to users netrc file
667
668       Net::POP3   Post Office Protocol 3 Client class (RFC1939)
669
670       Net::Ping   Check a remote host for reachability
671
672       Net::SMTP   Simple Mail Transfer Protocol Client
673
674       Net::Time   Time and daytime network client interface
675
676       Net::hostent
677                   By-name interface to Perl's built-in gethost*() functions
678
679       Net::libnetFAQ
680                   Libnet Frequently Asked Questions
681
682       Net::netent By-name interface to Perl's built-in getnet*() functions
683
684       Net::protoent
685                   By-name interface to Perl's built-in getproto*() functions
686
687       Net::servent
688                   By-name interface to Perl's built-in getserv*() functions
689
690       O           Generic interface to Perl Compiler backends
691
692       ODBM_File   Tied access to odbm files
693
694       Opcode      Disable named opcodes when compiling perl code
695
696       POSIX       Perl interface to IEEE Std 1003.1
697
698       PerlIO      On demand loader for PerlIO layers and root of PerlIO::*
699                   name space
700
701       PerlIO::encoding
702                   Encoding layer
703
704       PerlIO::scalar
705                   In-memory IO, scalar IO
706
707       PerlIO::via Helper class for PerlIO layers implemented in perl
708
709       PerlIO::via::QuotedPrint
710                   PerlIO layer for quoted-printable strings
711
712       Pod::Checker
713                   Check pod documents for syntax errors
714
715       Pod::Find   Find POD documents in directory trees
716
717       Pod::Functions
718                   Group Perl's functions a la perlfunc.pod
719
720       Pod::Html   Module to convert pod files to HTML
721
722       Pod::InputObjects
723                   Objects representing POD input paragraphs, commands, etc.
724
725       Pod::LaTeX  Convert Pod data to formatted Latex
726
727       Pod::Man    Convert POD data to formatted *roff input
728
729       Pod::ParseLink
730                   Parse an L<> formatting code in POD text
731
732       Pod::ParseUtils
733                   Helpers for POD parsing and conversion
734
735       Pod::Parser Base class for creating POD filters and translators
736
737       Pod::Perldoc::ToChecker
738                   Let Perldoc check Pod for errors
739
740       Pod::Perldoc::ToMan
741                   Let Perldoc render Pod as man pages
742
743       Pod::Perldoc::ToNroff
744                   Let Perldoc convert Pod to nroff
745
746       Pod::Perldoc::ToPod
747                   Let Perldoc render Pod as ... Pod!
748
749       Pod::Perldoc::ToRtf
750                   Let Perldoc render Pod as RTF
751
752       Pod::Perldoc::ToText
753                   Let Perldoc render Pod as plaintext
754
755       Pod::Perldoc::ToTk
756                   Let Perldoc use Tk::Pod to render Pod
757
758       Pod::Perldoc::ToXml
759                   Let Perldoc render Pod as XML
760
761       Pod::PlainText
762                   Convert POD data to formatted ASCII text
763
764       Pod::Plainer
765                   Perl extension for converting Pod to old style Pod.
766
767       Pod::Select Extract selected sections of POD from input
768
769       Pod::Text   Convert POD data to formatted ASCII text
770
771       Pod::Text::Color
772                   Convert POD data to formatted color ASCII text
773
774       Pod::Text::Overstrike
775                   Convert POD data to formatted overstrike text
776
777       Pod::Text::Termcap
778                   Convert POD data to ASCII text with format escapes
779
780       Pod::Usage  Print a usage message from embedded pod documentation
781
782       SDBM_File   Tied access to sdbm files
783
784       Safe        Compile and execute code in restricted compartments
785
786       Scalar::Util
787                   A selection of general-utility scalar subroutines
788
789       Search::Dict
790                   Search for key in dictionary file
791
792       SelectSaver Save and restore selected file handle
793
794       SelfLoader  Load functions only on demand
795
796       Shell       Run shell commands transparently within perl
797
798       Socket      Load the C socket.h defines and structure manipulators
799
800       Storable    Persistence for Perl data structures
801
802       Switch      A switch statement for Perl
803
804       Symbol      Manipulate Perl symbols and their names
805
806       Sys::Hostname
807                   Try every conceivable way to get hostname
808
809       Sys::Syslog Perl interface to the UNIX syslog(3) calls
810
811       Term::ANSIColor
812                   Color screen output using ANSI escape sequences
813
814       Term::Cap   Perl termcap interface
815
816       Term::Complete
817                   Perl word completion module
818
819       Term::ReadLine
820                   Perl interface to various "readline" packages.
821
822       Test        Provides a simple framework for writing test scripts
823
824       Test::Builder
825                   Backend for building test libraries
826
827       Test::Builder::Module
828                   Base class for test modules
829
830       Test::Builder::Tester
831                   Test testsuites that have been built with
832
833       Test::Builder::Tester::Color
834                   Turn on colour in Test::Builder::Tester
835
836       Test::Harness
837                   Run Perl standard test scripts with statistics
838
839       Test::Harness::Assert
840                   Simple assert
841
842       Test::Harness::Iterator
843                   Internal Test::Harness Iterator
844
845       Test::Harness::Point
846                   Object for tracking a single test point
847
848       Test::Harness::Straps
849                   Detailed analysis of test results
850
851       Test::Harness::TAP
852                   Documentation for the TAP format
853
854       Test::More  Yet another framework for writing test scripts
855
856       Test::Simple
857                   Basic utilities for writing tests.
858
859       Test::Tutorial
860                   A tutorial about writing really basic tests
861
862       Text::Abbrev
863                   Create an abbreviation table from a list
864
865       Text::Balanced
866                   Extract delimited text sequences from strings.
867
868       Text::ParseWords
869                   Parse text into an array of tokens or array of arrays
870
871       Text::Soundex
872                   Implementation of the Soundex Algorithm as Described by
873                   Knuth
874
875       Text::Tabs  Expand and unexpand tabs per the unix expand(1) and unex‐
876                   pand(1)
877
878       Text::Wrap  Line wrapping to form simple paragraphs
879
880       Thread      Manipulate threads in Perl (for old code only)
881
882       Thread::Queue
883                   Thread-safe queues
884
885       Thread::Semaphore
886                   Thread-safe semaphores
887
888       Thread::Signal
889                   Start a thread which runs signal handlers reliably (for old
890                   code)
891
892       Thread::Specific
893                   Thread-specific keys
894
895       Tie::Array  Base class for tied arrays
896
897       Tie::File   Access the lines of a disk file via a Perl array
898
899       Tie::Handle Base class definitions for tied handles
900
901       Tie::Hash   Base class definitions for tied hashes
902
903       Tie::Memoize
904                   Add data to hash when needed
905
906       Tie::RefHash
907                   Use references as hash keys
908
909       Tie::Scalar Base class definitions for tied scalars
910
911       Tie::SubstrHash
912                   Fixed-table-size, fixed-key-length hashing
913
914       Time::HiRes High resolution alarm, sleep, gettimeofday, interval timers
915
916       Time::Local Efficiently compute time from local and GMT time
917
918       Time::gmtime
919                   By-name interface to Perl's built-in gmtime() function
920
921       Time::localtime
922                   By-name interface to Perl's built-in localtime() function
923
924       Time::tm    Internal object used by Time::gmtime and Time::localtime
925
926       UNIVERSAL   Base class for ALL classes (blessed references)
927
928       Unicode::Collate
929                   Unicode Collation Algorithm
930
931       Unicode::Normalize
932                   Unicode Normalization Forms
933
934       Unicode::UCD
935                   Unicode character database
936
937       User::grent By-name interface to Perl's built-in getgr*() functions
938
939       User::pwent By-name interface to Perl's built-in getpw*() functions
940
941       XS::APItest Test the perl C API
942
943       XS::Typemap Module to test the XS typemaps distributed with perl
944
945       XSLoader    Dynamically load C libraries into Perl code
946
947       To find out all modules installed on your system, including those with‐
948       out documentation or outside the standard release, just use the follow‐
949       ing command (under the default win32 shell, double quotes should be
950       used instead of single quotes).
951
952           % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
953             'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
954             no_chdir => 1 }, @INC'
955
956       (The -T is here to prevent '.' from being listed in @INC.)  They should
957       all have their own documentation installed and accessible via your sys‐
958       tem man(1) command.  If you do not have a find program, you can use the
959       Perl find2perl program instead, which generates Perl code as output you
960       can run through perl.  If you have a man program but it doesn't find
961       your modules, you'll have to fix your manpath.  See perl for details.
962       If you have no system man command, you might try the perldoc program.
963
964       Note also that the command "perldoc perllocal" gives you a (possibly
965       incomplete) list of the modules that have been further installed on
966       your system. (The perllocal.pod file is updated by the standard Make‐
967       Maker install process.)
968
969       Extension Modules
970
971       Extension modules are written in C (or a mix of Perl and C).  They are
972       usually dynamically loaded into Perl if and when you need them, but may
973       also be linked in statically.  Supported extension modules include
974       Socket, Fcntl, and POSIX.
975
976       Many popular C extension modules do not come bundled (at least, not
977       completely) due to their sizes, volatility, or simply lack of time for
978       adequate testing and configuration across the multitude of platforms on
979       which Perl was beta-tested.  You are encouraged to look for them on
980       CPAN (described below), or using web search engines like Alta Vista or
981       Google.
982

CPAN

984       CPAN stands for Comprehensive Perl Archive Network; it's a globally
985       replicated trove of Perl materials, including documentation, style
986       guides, tricks and traps, alternate ports to non-Unix systems and occa‐
987       sional binary distributions for these.   Search engines for CPAN can be
988       found at http://www.cpan.org/
989
990       Most importantly, CPAN includes around a thousand unbundled modules,
991       some of which require a C compiler to build.  Major categories of mod‐
992       ules are:
993
994       ·   Language Extensions and Documentation Tools
995
996       ·   Development Support
997
998       ·   Operating System Interfaces
999
1000       ·   Networking, Device Control (modems) and InterProcess Communication
1001
1002       ·   Data Types and Data Type Utilities
1003
1004       ·   Database Interfaces
1005
1006       ·   User Interfaces
1007
1008       ·   Interfaces to / Emulations of Other Programming Languages
1009
1010       ·   File Names, File Systems and File Locking (see also File Handles)
1011
1012       ·   String Processing, Language Text Processing, Parsing, and Searching
1013
1014       ·   Option, Argument, Parameter, and Configuration File Processing
1015
1016       ·   Internationalization and Locale
1017
1018       ·   Authentication, Security, and Encryption
1019
1020       ·   World Wide Web, HTML, HTTP, CGI, MIME
1021
1022       ·   Server and Daemon Utilities
1023
1024       ·   Archiving and Compression
1025
1026       ·   Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1027
1028       ·   Mail and Usenet News
1029
1030       ·   Control Flow Utilities (callbacks and exceptions etc)
1031
1032       ·   File Handle and Input/Output Stream Utilities
1033
1034       ·   Miscellaneous Modules
1035
1036       The list of the registered CPAN sites as of this writing follows.
1037       Please note that the sorting order is alphabetical on fields:
1038
1039       Continent
1040
1041          ⎪-->Country
1042
1043                ⎪-->[state/province]
1044
1045                          ⎪-->ftp
1046
1047                          ⎪-->[http]
1048
1049       and thus the North American servers happen to be listed between the
1050       European and the South American sites.
1051
1052       You should try to choose one close to you.
1053
1054       Africa
1055
1056       South Africa
1057                                 http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1058                                 ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1059                                 ftp://ftp.is.co.za/programming/perl/CPAN/
1060                                 ftp://ftp.saix.net/pub/CPAN/
1061                                 ftp://ftp.sun.ac.za/CPAN/CPAN/
1062
1063       Asia
1064
1065       China
1066                                 http://cpan.linuxforum.net/
1067                                 http://cpan.shellhung.org/
1068                                 ftp://ftp.shellhung.org/pub/CPAN
1069                                 ftp://mirrors.hknet.com/CPAN
1070
1071       Indonesia
1072                                 http://mirrors.tf.itb.ac.id/cpan/
1073                                 http://cpan.cbn.net.id/
1074                                 ftp://ftp.cbn.net.id/mirror/CPAN
1075
1076       Israel
1077                                 ftp://ftp.iglu.org.il/pub/CPAN/
1078                                 http://cpan.lerner.co.il/
1079                                 http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1080                                 ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1081
1082       Japan
1083                                 ftp://ftp.u-aizu.ac.jp/pub/CPAN
1084                                 ftp://ftp.kddlabs.co.jp/CPAN/
1085                                 ftp://ftp.ayamura.org/pub/CPAN/
1086                                 ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1087                                 http://ftp.cpan.jp/
1088                                 ftp://ftp.cpan.jp/CPAN/
1089                                 ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1090                                 ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1091
1092       Malaysia
1093                                 http://cpan.MyBSD.org.my
1094                                 http://mirror.leafbug.org/pub/CPAN
1095                                 http://ossig.mncc.com.my/mirror/pub/CPAN
1096
1097       Russian Federation
1098                                 http://cpan.tomsk.ru
1099                                 ftp://cpan.tomsk.ru/
1100
1101       Saudi Arabia
1102                                 ftp://ftp.isu.net.sa/pub/CPAN/
1103
1104       Singapore
1105                                 http://CPAN.en.com.sg/
1106                                 ftp://cpan.en.com.sg/
1107                                 http://mirror.averse.net/pub/CPAN
1108                                 ftp://mirror.averse.net/pub/CPAN
1109                                 http://cpan.oss.eznetsols.org
1110                                 ftp://ftp.oss.eznetsols.org/cpan
1111
1112       South Korea
1113                                 http://CPAN.bora.net/
1114                                 ftp://ftp.bora.net/pub/CPAN/
1115                                 http://mirror.kr.FreeBSD.org/CPAN
1116                                 ftp://ftp.kr.FreeBSD.org/pub/CPAN
1117
1118       Taiwan
1119                                 ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
1120                                 http://cpan.cdpa.nsysu.edu.tw/
1121                                 ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
1122                                 http://ftp.isu.edu.tw/pub/CPAN
1123                                 ftp://ftp.isu.edu.tw/pub/CPAN
1124                                 ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1125                                 http://ftp.tku.edu.tw/pub/CPAN/
1126                                 ftp://ftp.tku.edu.tw/pub/CPAN/
1127
1128       Thailand
1129                                 ftp://ftp.loxinfo.co.th/pub/cpan/
1130                                 ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1131
1132       Central America
1133
1134       Costa Rica
1135                                 http://ftp.ucr.ac.cr/Unix/CPAN/
1136                                 ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1137
1138       Europe
1139
1140       Austria
1141                                 http://cpan.inode.at/
1142                                 ftp://cpan.inode.at
1143                                 ftp://ftp.tuwien.ac.at/pub/CPAN/
1144
1145       Belgium
1146                                 http://ftp.easynet.be/pub/CPAN/
1147                                 ftp://ftp.easynet.be/pub/CPAN/
1148                                 http://cpan.skynet.be
1149                                 ftp://ftp.cpan.skynet.be/pub/CPAN
1150                                 ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1151
1152       Bosnia and Herzegovina
1153                                 http://cpan.blic.net/
1154
1155       Bulgaria
1156                                 http://cpan.online.bg
1157                                 ftp://cpan.online.bg/cpan
1158                                 http://cpan.zadnik.org
1159                                 ftp://ftp.zadnik.org/mirrors/CPAN/
1160                                 http://cpan.lirex.net/
1161                                 ftp://ftp.lirex.net/pub/mirrors/CPAN
1162
1163       Croatia
1164                                 http://ftp.linux.hr/pub/CPAN/
1165                                 ftp://ftp.linux.hr/pub/CPAN/
1166
1167       Czech Republic
1168                                 ftp://ftp.fi.muni.cz/pub/CPAN/
1169                                 ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1170
1171       Denmark
1172                                 http://mirrors.sunsite.dk/cpan/
1173                                 ftp://sunsite.dk/mirrors/cpan/
1174                                 http://cpan.cybercity.dk
1175                                 http://www.cpan.dk/CPAN/
1176                                 ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1177
1178       Estonia
1179                                 ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1180
1181       Finland
1182                                 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1183                                 http://mirror.eunet.fi/CPAN
1184
1185       France
1186                                 http://www.enstimac.fr/Perl/CPAN
1187                                 http://ftp.u-paris10.fr/perl/CPAN
1188                                 ftp://ftp.u-paris10.fr/perl/CPAN
1189                                 http://cpan.mirrors.easynet.fr/
1190                                 ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1191                                 ftp://ftp.club-internet.fr/pub/perl/CPAN/
1192                                 http://fr.cpan.org/
1193                                 ftp://ftp.lip6.fr/pub/perl/CPAN/
1194                                 ftp://ftp.oleane.net/pub/mirrors/CPAN/
1195                                 ftp://ftp.pasteur.fr/pub/computing/CPAN/
1196                                 http://mir2.ovh.net/ftp.cpan.org
1197                                 ftp://mir1.ovh.net/ftp.cpan.org
1198                                 http://ftp.crihan.fr/mirrors/ftp.cpan.org/
1199                                 ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
1200                                 http://ftp.u-strasbg.fr/CPAN
1201                                 ftp://ftp.u-strasbg.fr/CPAN
1202                                 ftp://cpan.cict.fr/pub/CPAN/
1203                                 ftp://ftp.uvsq.fr/pub/perl/CPAN/
1204
1205       Germany
1206                                 ftp://ftp.rub.de/pub/CPAN/
1207                                 ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1208                                 ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1209                                 ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1210                                 http://pandemonium.tiscali.de/pub/CPAN/
1211                                 ftp://pandemonium.tiscali.de/pub/CPAN/
1212                                 http://ftp.gwdg.de/pub/languages/perl/CPAN/
1213                                 ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1214                                 ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1215                                 ftp://ftp.leo.org/pub/CPAN/
1216                                 http://cpan.noris.de/
1217                                 ftp://cpan.noris.de/pub/CPAN/
1218                                 ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1219                                 ftp://ftp.gmd.de/mirrors/CPAN/
1220
1221       Greece
1222                                 ftp://ftp.acn.gr/pub/lang/perl
1223                                 ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1224                                 ftp://ftp.ntua.gr/pub/lang/perl/
1225
1226       Hungary
1227                                 http://ftp.kfki.hu/packages/perl/CPAN/
1228                                 ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1229
1230       Iceland
1231                                 http://ftp.rhnet.is/pub/CPAN/
1232                                 ftp://ftp.rhnet.is/pub/CPAN/
1233
1234       Ireland
1235                                 http://cpan.indigo.ie/
1236                                 ftp://cpan.indigo.ie/pub/CPAN/
1237                                 http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1238                                 ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1239                                 http://sunsite.compapp.dcu.ie/pub/perl/
1240                                 ftp://sunsite.compapp.dcu.ie/pub/perl/
1241
1242       Italy
1243                                 http://cpan.nettuno.it/
1244                                 http://gusp.dyndns.org/CPAN/
1245                                 ftp://gusp.dyndns.org/pub/CPAN
1246                                 http://softcity.iol.it/cpan
1247                                 ftp://softcity.iol.it/pub/cpan
1248                                 ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1249                                 ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1250                                 ftp://cis.uniRoma2.it/CPAN/
1251                                 ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1252                                 http://cpan.flashnet.it/
1253                                 ftp://ftp.flashnet.it/pub/CPAN/
1254
1255       Latvia
1256                                 http://kvin.lv/pub/CPAN/
1257
1258       Lithuania
1259                                 ftp://ftp.unix.lt/pub/CPAN/
1260
1261       Netherlands
1262                                 ftp://download.xs4all.nl/pub/mirror/CPAN/
1263                                 ftp://ftp.nl.uu.net/pub/CPAN/
1264                                 ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1265                                 http://cpan.cybercomm.nl/
1266                                 ftp://mirror.cybercomm.nl/pub/CPAN
1267                                 ftp://mirror.vuurwerk.nl/pub/CPAN/
1268                                 ftp://ftp.cpan.nl/pub/CPAN/
1269                                 http://ftp.easynet.nl/mirror/CPAN
1270                                 ftp://ftp.easynet.nl/mirror/CPAN
1271                                 http://archive.cs.uu.nl/mirror/CPAN/
1272                                 ftp://ftp.cs.uu.nl/mirror/CPAN/
1273
1274       Norway
1275                                 ftp://ftp.uninett.no/pub/languages/perl/CPAN
1276                                 ftp://ftp.uit.no/pub/languages/perl/cpan/
1277
1278       Poland
1279                                 ftp://ftp.mega.net.pl/CPAN
1280                                 ftp://ftp.man.torun.pl/pub/doc/CPAN/
1281                                 ftp://sunsite.icm.edu.pl/pub/CPAN/
1282
1283       Portugal
1284                                 ftp://ftp.ua.pt/pub/CPAN/
1285                                 ftp://perl.di.uminho.pt/pub/CPAN/
1286                                 http://cpan.dei.uc.pt/
1287                                 ftp://ftp.dei.uc.pt/pub/CPAN
1288                                 ftp://ftp.nfsi.pt/pub/CPAN
1289                                 http://ftp.linux.pt/pub/mirrors/CPAN
1290                                 ftp://ftp.linux.pt/pub/mirrors/CPAN
1291                                 http://cpan.ip.pt/
1292                                 ftp://cpan.ip.pt/pub/cpan/
1293                                 http://cpan.telepac.pt/
1294                                 ftp://ftp.telepac.pt/pub/cpan/
1295
1296       Romania
1297                                 ftp://ftp.bio-net.ro/pub/CPAN
1298                                 ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1299                                 ftp://ftp.lug.ro/CPAN
1300                                 ftp://ftp.roedu.net/pub/CPAN/
1301                                 ftp://ftp.dntis.ro/pub/cpan/
1302                                 ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
1303                                 http://cpan.ambra.ro/
1304                                 ftp://ftp.ambra.ro/pub/CPAN
1305                                 ftp://ftp.dnttm.ro/pub/CPAN/
1306                                 ftp://ftp.lasting.ro/pub/CPAN
1307                                 ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1308
1309       Russia
1310                                 ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1311                                 http://cpan.rinet.ru/
1312                                 ftp://cpan.rinet.ru/pub/mirror/CPAN/
1313                                 ftp://ftp.aha.ru/pub/CPAN/
1314                                 ftp://ftp.corbina.ru/pub/CPAN/
1315                                 http://cpan.sai.msu.ru/
1316                                 ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1317
1318       Slovakia
1319                                 ftp://ftp.cvt.stuba.sk/pub/CPAN/
1320
1321       Slovenia
1322                                 ftp://ftp.arnes.si/software/perl/CPAN/
1323
1324       Spain
1325                                 http://cpan.imasd.elmundo.es/
1326                                 ftp://ftp.rediris.es/mirror/CPAN/
1327                                 ftp://ftp.ri.telefonica-data.net/CPAN
1328                                 ftp://ftp.etse.urv.es/pub/perl/
1329
1330       Sweden
1331                                 http://ftp.du.se/CPAN/
1332                                 ftp://ftp.du.se/pub/CPAN/
1333                                 http://mirror.dataphone.se/CPAN
1334                                 ftp://mirror.dataphone.se/pub/CPAN
1335                                 ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1336
1337       Switzerland
1338                                 http://cpan.mirror.solnet.ch/
1339                                 ftp://ftp.solnet.ch/mirror/CPAN/
1340                                 ftp://ftp.danyk.ch/CPAN/
1341                                 ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1342
1343       Turkey
1344                                 http://ftp.ulak.net.tr/perl/CPAN/
1345                                 ftp://ftp.ulak.net.tr/perl/CPAN
1346                                 ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1347
1348       Ukraine
1349                                 http://cpan.org.ua/
1350                                 ftp://cpan.org.ua/
1351                                 ftp://ftp.perl.org.ua/pub/CPAN/
1352                                 http://no-more.kiev.ua/CPAN/
1353                                 ftp://no-more.kiev.ua/pub/CPAN/
1354
1355       United Kingdom
1356                                 http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1357                                 ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1358                                 http://cpan.teleglobe.net/
1359                                 ftp://cpan.teleglobe.net/pub/CPAN
1360                                 http://cpan.mirror.anlx.net/
1361                                 ftp://ftp.mirror.anlx.net/CPAN/
1362                                 http://cpan.etla.org/
1363                                 ftp://cpan.etla.org/pub/CPAN
1364                                 ftp://ftp.demon.co.uk/pub/CPAN/
1365                                 http://cpan.m.flirble.org/
1366                                 ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1367                                 ftp://ftp.plig.org/pub/CPAN/
1368                                 http://cpan.hambule.co.uk/
1369                                 http://cpan.mirrors.clockerz.net/
1370                                 ftp://ftp.clockerz.net/pub/CPAN/
1371                                 ftp://usit.shef.ac.uk/pub/packages/CPAN/
1372
1373       North America
1374
1375       Canada
1376           Alberta
1377                                         http://cpan.sunsite.ualberta.ca/
1378                                         ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
1379
1380           Manitoba
1381                                         http://theoryx5.uwinnipeg.ca/pub/CPAN/
1382                                         ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1383
1384           Nova Scotia
1385                                         ftp://cpan.chebucto.ns.ca/pub/CPAN/
1386
1387           Ontario
1388                                         ftp://ftp.nrc.ca/pub/CPAN/
1389
1390       Mexico
1391                                 http://cpan.azc.uam.mx
1392                                 ftp://cpan.azc.uam.mx/mirrors/CPAN
1393                                 http://www.cpan.unam.mx/
1394                                 ftp://ftp.unam.mx/pub/CPAN
1395                                 http://www.msg.com.mx/CPAN/
1396                                 ftp://ftp.msg.com.mx/pub/CPAN/
1397
1398       United States
1399           Alabama
1400                                         http://mirror.hiwaay.net/CPAN/
1401                                         ftp://mirror.hiwaay.net/CPAN/
1402
1403           California
1404                                         http://cpan.develooper.com/
1405                                         http://www.cpan.org/
1406                                         ftp://cpan.valueclick.com/pub/CPAN/
1407                                         http://www.mednor.net/ftp/pub/mirrors/CPAN/
1408                                         ftp://ftp.mednor.net/pub/mirrors/CPAN/
1409                                         http://mirrors.gossamer-threads.com/CPAN
1410                                         ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1411                                         http://mirrors.kernel.org/cpan/
1412                                         ftp://mirrors.kernel.org/pub/CPAN
1413                                         http://cpan-sj.viaverio.com/
1414                                         ftp://cpan-sj.viaverio.com/pub/CPAN/
1415                                         http://cpan.digisle.net/
1416                                         ftp://cpan.digisle.net/pub/CPAN
1417                                         http://www.perl.com/CPAN/
1418                                         http://www.uberlan.net/CPAN
1419
1420           Colorado
1421                                         ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1422                                         http://cpan.four10.com
1423
1424           Delaware
1425                                         http://ftp.lug.udel.edu/pub/CPAN
1426                                         ftp://ftp.lug.udel.edu/pub/CPAN
1427
1428           District of Columbia
1429                                         ftp://ftp.dc.aleron.net/pub/CPAN/
1430
1431           Florida
1432                                         ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1433                                         http://mirror.csit.fsu.edu/pub/CPAN/
1434                                         ftp://mirror.csit.fsu.edu/pub/CPAN/
1435                                         http://cpan.mirrors.nks.net/
1436
1437           Indiana
1438                                         ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1439                                         http://cpan.netnitco.net/
1440                                         ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1441                                         http://archive.progeny.com/CPAN/
1442                                         ftp://archive.progeny.com/CPAN/
1443                                         http://fx.saintjoe.edu/pub/CPAN
1444                                         ftp://ftp.saintjoe.edu/pub/CPAN
1445                                         http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1446                                         ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1447
1448           Kentucky
1449                                         http://cpan.uky.edu/
1450                                         ftp://cpan.uky.edu/pub/CPAN/
1451                                         http://slugsite.louisville.edu/cpan
1452                                         ftp://slugsite.louisville.edu/CPAN
1453
1454           Massachusetts
1455                                         http://mirrors.towardex.com/CPAN
1456                                         ftp://mirrors.towardex.com/pub/CPAN
1457                                         ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1458
1459           Michigan
1460                                         ftp://cpan.cse.msu.edu/
1461                                         http://cpan.calvin.edu/pub/CPAN
1462                                         ftp://cpan.calvin.edu/pub/CPAN
1463
1464           Nevada
1465                                         http://www.oss.redundant.com/pub/CPAN
1466                                         ftp://www.oss.redundant.com/pub/CPAN
1467
1468           New Jersey
1469                                         http://ftp.cpanel.net/pub/CPAN/
1470                                         ftp://ftp.cpanel.net/pub/CPAN/
1471                                         http://cpan.teleglobe.net/
1472                                         ftp://cpan.teleglobe.net/pub/CPAN
1473
1474           New York
1475                                         http://cpan.belfry.net/
1476                                         http://cpan.erlbaum.net/
1477                                         ftp://cpan.erlbaum.net/
1478                                         http://cpan.thepirtgroup.com/
1479                                         ftp://cpan.thepirtgroup.com/
1480                                         ftp://ftp.stealth.net/pub/CPAN/
1481                                         http://www.rge.com/pub/languages/perl/
1482                                         ftp://ftp.rge.com/pub/languages/perl/
1483
1484           North Carolina
1485                                         http://www.ibiblio.org/pub/languages/perl/CPAN
1486                                         ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
1487                                         ftp://ftp.duke.edu/pub/perl/
1488                                         ftp://ftp.ncsu.edu/pub/mirror/CPAN/
1489
1490           Oklahoma
1491                                         ftp://ftp.ou.edu/mirrors/CPAN/
1492
1493           Oregon
1494                                         ftp://ftp.orst.edu/pub/CPAN
1495
1496           Pennsylvania
1497                                         http://ftp.epix.net/CPAN/
1498                                         ftp://ftp.epix.net/pub/languages/perl/
1499                                         http://mirrors.phenominet.com/pub/CPAN/
1500                                         ftp://mirrors.phenominet.com/pub/CPAN/
1501                                         http://cpan.pair.com/
1502                                         ftp://cpan.pair.com/pub/CPAN/
1503                                         ftp://carroll.cac.psu.edu/pub/CPAN/
1504
1505           Tennessee
1506                                         ftp://ftp.sunsite.utk.edu/pub/CPAN/
1507
1508           Texas
1509                                         http://ftp.sedl.org/pub/mirrors/CPAN/
1510                                         http://www.binarycode.org/cpan
1511                                         ftp://mirror.telentente.com/pub/CPAN
1512                                         http://mirrors.theonlinerecordstore.com/CPAN
1513
1514           Utah
1515                                         ftp://mirror.xmission.com/CPAN/
1516
1517           Virginia
1518                                         http://cpan-du.viaverio.com/
1519                                         ftp://cpan-du.viaverio.com/pub/CPAN/
1520                                         http://mirrors.rcn.net/pub/lang/CPAN/
1521                                         ftp://mirrors.rcn.net/pub/lang/CPAN/
1522                                         http://perl.secsup.org/
1523                                         ftp://perl.secsup.org/pub/perl/
1524                                         http://noc.cvaix.com/mirrors/CPAN/
1525
1526           Washington
1527                                         http://cpan.llarian.net/
1528                                         ftp://cpan.llarian.net/pub/CPAN/
1529                                         http://cpan.mirrorcentral.com/
1530                                         ftp://ftp.mirrorcentral.com/pub/CPAN/
1531                                         ftp://ftp-mirror.internap.com/pub/CPAN/
1532
1533           Wisconsin
1534                                         http://mirror.sit.wisc.edu/pub/CPAN/
1535                                         ftp://mirror.sit.wisc.edu/pub/CPAN/
1536                                         http://mirror.aphix.com/CPAN
1537                                         ftp://mirror.aphix.com/pub/CPAN
1538
1539       Oceania
1540
1541       Australia
1542                                 http://ftp.planetmirror.com/pub/CPAN/
1543                                 ftp://ftp.planetmirror.com/pub/CPAN/
1544                                 ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
1545                                 ftp://cpan.topend.com.au/pub/CPAN/
1546                                 http://cpan.mirrors.ilisys.com.au
1547
1548       New Zealand
1549                                 ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
1550
1551       United States
1552                                 http://aniani.ifa.hawaii.edu/CPAN/
1553                                 ftp://aniani.ifa.hawaii.edu/CPAN/
1554
1555       South America
1556
1557       Argentina
1558                                 ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
1559                                 http://www.linux.org.ar/mirrors/cpan
1560                                 ftp://ftp.linux.org.ar/mirrors/cpan
1561
1562       Brazil
1563                                 ftp://cpan.pop-mg.com.br/pub/CPAN/
1564                                 ftp://ftp.matrix.com.br/pub/perl/CPAN/
1565                                 http://cpan.hostsul.com.br/
1566                                 ftp://cpan.hostsul.com.br/
1567
1568       Chile
1569                                 http://cpan.netglobalis.net/
1570                                 ftp://cpan.netglobalis.net/pub/CPAN/
1571
1572       RSYNC Mirrors
1573
1574                             www.linux.org.ar::cpan
1575                             theoryx5.uwinnipeg.ca::CPAN
1576                             ftp.shellhung.org::CPAN
1577                             rsync.nic.funet.fi::CPAN
1578                             ftp.u-paris10.fr::CPAN
1579                             mir1.ovh.net::CPAN
1580                             rsync://ftp.crihan.fr::CPAN
1581                             ftp.gwdg.de::FTP/languages/perl/CPAN/
1582                             ftp.leo.org::CPAN
1583                             ftp.cbn.net.id::CPAN
1584                             rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1585                             ftp.iglu.org.il::CPAN
1586                             gusp.dyndns.org::cpan
1587                             ftp.kddlabs.co.jp::cpan
1588                             ftp.ayamura.org::pub/CPAN/
1589                             mirror.leafbug.org::CPAN
1590                             rsync.en.com.sg::CPAN
1591                             mirror.averse.net::cpan
1592                             rsync.oss.eznetsols.org
1593                             ftp.kr.FreeBSD.org::CPAN
1594                             ftp.solnet.ch::CPAN
1595                             cpan.cdpa.nsysu.edu.tw::CPAN
1596                             cpan.teleglobe.net::CPAN
1597                             rsync://rsync.mirror.anlx.net::CPAN
1598                             ftp.sedl.org::cpan
1599                             ibiblio.org::CPAN
1600                             cpan-du.viaverio.com::CPAN
1601                             aniani.ifa.hawaii.edu::CPAN
1602                             archive.progeny.com::CPAN
1603                             rsync://slugsite.louisville.edu::CPAN
1604                             mirror.aphix.com::CPAN
1605                             cpan.teleglobe.net::CPAN
1606                             ftp.lug.udel.edu::cpan
1607                             mirrors.kernel.org::mirrors/CPAN
1608                             mirrors.phenominet.com::CPAN
1609                             cpan.pair.com::CPAN
1610                             cpan-sj.viaverio.com::CPAN
1611                             mirror.csit.fsu.edu::CPAN
1612                             csociety-ftp.ecn.purdue.edu::CPAN
1613
1614       For an up-to-date listing of CPAN sites, see http://www.cpan.org/SITES
1615       or ftp://www.cpan.org/SITES .
1616

Modules: Creation, Use, and Abuse

1618       (The following section is borrowed directly from Tim Bunce's modules
1619       file, available at your nearest CPAN site.)
1620
1621       Perl implements a class using a package, but the presence of a package
1622       doesn't imply the presence of a class.  A package is just a namespace.
1623       A class is a package that provides subroutines that can be used as
1624       methods.  A method is just a subroutine that expects, as its first
1625       argument, either the name of a package (for "static" methods), or a
1626       reference to something (for "virtual" methods).
1627
1628       A module is a file that (by convention) provides a class of the same
1629       name (sans the .pm), plus an import method in that class that can be
1630       called to fetch exported symbols.  This module may implement some of
1631       its methods by loading dynamic C or C++ objects, but that should be
1632       totally transparent to the user of the module.  Likewise, the module
1633       might set up an AUTOLOAD function to slurp in subroutine definitions on
1634       demand, but this is also transparent.  Only the .pm file is required to
1635       exist.  See perlsub, perltoot, and AutoLoader for details about the
1636       AUTOLOAD mechanism.
1637
1638       Guidelines for Module Creation
1639
1640       ·   Do similar modules already exist in some form?
1641
1642           If so, please try to reuse the existing modules either in whole or
1643           by inheriting useful features into a new class.  If this is not
1644           practical try to get together with the module authors to work on
1645           extending or enhancing the functionality of the existing modules.
1646           A perfect example is the plethora of packages in perl4 for dealing
1647           with command line options.
1648
1649           If you are writing a module to expand an already existing set of
1650           modules, please coordinate with the author of the package.  It
1651           helps if you follow the same naming scheme and module interaction
1652           scheme as the original author.
1653
1654       ·   Try to design the new module to be easy to extend and reuse.
1655
1656           Try to "use warnings;" (or "use warnings qw(...);").  Remember that
1657           you can add "no warnings qw(...);" to individual blocks of code
1658           that need less warnings.
1659
1660           Use blessed references.  Use the two argument form of bless to
1661           bless into the class name given as the first parameter of the con‐
1662           structor, e.g.,:
1663
1664            sub new {
1665                my $class = shift;
1666                return bless {}, $class;
1667            }
1668
1669           or even this if you'd like it to be used as either a static or a
1670           virtual method.
1671
1672            sub new {
1673                my $self  = shift;
1674                my $class = ref($self) ⎪⎪ $self;
1675                return bless {}, $class;
1676            }
1677
1678           Pass arrays as references so more parameters can be added later
1679           (it's also faster).  Convert functions into methods where appropri‐
1680           ate.  Split large methods into smaller more flexible ones.  Inherit
1681           methods from other modules if appropriate.
1682
1683           Avoid class name tests like: "die "Invalid" unless ref $ref eq
1684           'FOO'".  Generally you can delete the "eq 'FOO'" part with no harm
1685           at all.  Let the objects look after themselves! Generally, avoid
1686           hard-wired class names as far as possible.
1687
1688           Avoid "$r->Class::func()" where using "@ISA=qw(... Class ...)" and
1689           "$r->func()" would work (see perlbot for more details).
1690
1691           Use autosplit so little used or newly added functions won't be a
1692           burden to programs that don't use them. Add test functions to the
1693           module after __END__ either using AutoSplit or by saying:
1694
1695            eval join('',<main::DATA>) ⎪⎪ die $@ unless caller();
1696
1697           Does your module pass the 'empty subclass' test? If you say "@SUB‐
1698           CLASS::ISA = qw(YOURCLASS);" your applications should be able to
1699           use SUBCLASS in exactly the same way as YOURCLASS.  For example,
1700           does your application still work if you change:  "$obj = new YOUR‐
1701           CLASS;" into: "$obj = new SUBCLASS;" ?
1702
1703           Avoid keeping any state information in your packages. It makes it
1704           difficult for multiple other packages to use yours. Keep state
1705           information in objects.
1706
1707           Always use -w.
1708
1709           Try to "use strict;" (or "use strict qw(...);").  Remember that you
1710           can add "no strict qw(...);" to individual blocks of code that need
1711           less strictness.
1712
1713           Always use -w.
1714
1715           Follow the guidelines in the perlstyle(1) manual.
1716
1717           Always use -w.
1718
1719       ·   Some simple style guidelines
1720
1721           The perlstyle manual supplied with Perl has many helpful points.
1722
1723           Coding style is a matter of personal taste. Many people evolve
1724           their style over several years as they learn what helps them write
1725           and maintain good code.  Here's one set of assorted suggestions
1726           that seem to be widely used by experienced developers:
1727
1728           Use underscores to separate words.  It is generally easier to read
1729           $var_names_like_this than $VarNamesLikeThis, especially for non-
1730           native speakers of English. It's also a simple rule that works con‐
1731           sistently with VAR_NAMES_LIKE_THIS.
1732
1733           Package/Module names are an exception to this rule. Perl informally
1734           reserves lowercase module names for 'pragma' modules like integer
1735           and strict. Other modules normally begin with a capital letter and
1736           use mixed case with no underscores (need to be short and portable).
1737
1738           You may find it helpful to use letter case to indicate the scope or
1739           nature of a variable. For example:
1740
1741            $ALL_CAPS_HERE   constants only (beware clashes with Perl vars)
1742            $Some_Caps_Here  package-wide global/static
1743            $no_caps_here    function scope my() or local() variables
1744
1745           Function and method names seem to work best as all lowercase.
1746           e.g., "$obj->as_string()".
1747
1748           You can use a leading underscore to indicate that a variable or
1749           function should not be used outside the package that defined it.
1750
1751       ·   Select what to export.
1752
1753           Do NOT export method names!
1754
1755           Do NOT export anything else by default without a good reason!
1756
1757           Exports pollute the namespace of the module user.  If you must
1758           export try to use @EXPORT_OK in preference to @EXPORT and avoid
1759           short or common names to reduce the risk of name clashes.
1760
1761           Generally anything not exported is still accessible from outside
1762           the module using the ModuleName::item_name (or
1763           "$blessed_ref->method") syntax.  By convention you can use a lead‐
1764           ing underscore on names to indicate informally that they are
1765           'internal' and not for public use.
1766
1767           (It is actually possible to get private functions by saying: "my
1768           $subref = sub { ... };  &$subref;".  But there's no way to call
1769           that directly as a method, because a method must have a name in the
1770           symbol table.)
1771
1772           As a general rule, if the module is trying to be object oriented
1773           then export nothing. If it's just a collection of functions then
1774           @EXPORT_OK anything but use @EXPORT with caution.
1775
1776       ·   Select a name for the module.
1777
1778           This name should be as descriptive, accurate, and complete as pos‐
1779           sible.  Avoid any risk of ambiguity. Always try to use two or more
1780           whole words.  Generally the name should reflect what is special
1781           about what the module does rather than how it does it.  Please use
1782           nested module names to group informally or categorize a module.
1783           There should be a very good reason for a module not to have a
1784           nested name.  Module names should begin with a capital letter.
1785
1786           Having 57 modules all called Sort will not make life easy for any‐
1787           one (though having 23 called Sort::Quick is only marginally better
1788           :-).  Imagine someone trying to install your module alongside many
1789           others.  If in any doubt ask for suggestions in
1790           comp.lang.perl.misc.
1791
1792           If you are developing a suite of related modules/classes it's good
1793           practice to use nested classes with a common prefix as this will
1794           avoid namespace clashes. For example: Xyz::Control, Xyz::View,
1795           Xyz::Model etc. Use the modules in this list as a naming guide.
1796
1797           If adding a new module to a set, follow the original author's stan‐
1798           dards for naming modules and the interface to methods in those mod‐
1799           ules.
1800
1801           If developing modules for private internal or project specific use,
1802           that will never be released to the public, then you should ensure
1803           that their names will not clash with any future public module. You
1804           can do this either by using the reserved Local::* category or by
1805           using a category name that includes an underscore like Foo_Corp::*.
1806
1807           To be portable each component of a module name should be limited to
1808           11 characters. If it might be used on MS-DOS then try to ensure
1809           each is unique in the first 8 characters. Nested modules make this
1810           easier.
1811
1812       ·   Have you got it right?
1813
1814           How do you know that you've made the right decisions? Have you
1815           picked an interface design that will cause problems later? Have you
1816           picked the most appropriate name? Do you have any questions?
1817
1818           The best way to know for sure, and pick up many helpful sugges‐
1819           tions, is to ask someone who knows. Comp.lang.perl.misc is read by
1820           just about all the people who develop modules and it's the best
1821           place to ask.
1822
1823           All you need to do is post a short summary of the module, its pur‐
1824           pose and interfaces. A few lines on each of the main methods is
1825           probably enough. (If you post the whole module it might be ignored
1826           by busy people - generally the very people you want to read it!)
1827
1828           Don't worry about posting if you can't say when the module will be
1829           ready - just say so in the message. It might be worth inviting oth‐
1830           ers to help you, they may be able to complete it for you!
1831
1832       ·   README and other Additional Files.
1833
1834           It's well known that software developers usually fully document the
1835           software they write. If, however, the world is in urgent need of
1836           your software and there is not enough time to write the full docu‐
1837           mentation please at least provide a README file containing:
1838
1839           ·         A description of the module/package/extension etc.
1840
1841           ·         A copyright notice - see below.
1842
1843           ·         Prerequisites - what else you may need to have.
1844
1845           ·         How to build it - possible changes to Makefile.PL etc.
1846
1847           ·         How to install it.
1848
1849           ·         Recent changes in this release, especially incompatibili‐
1850                     ties
1851
1852           ·         Changes / enhancements you plan to make in the future.
1853
1854           If the README file seems to be getting too large you may wish to
1855           split out some of the sections into separate files: INSTALL, Copy‐
1856           ing, ToDo etc.
1857
1858           ·   Adding a Copyright Notice.
1859
1860               How you choose to license your work is a personal decision.
1861               The general mechanism is to assert your Copyright and then make
1862               a declaration of how others may copy/use/modify your work.
1863
1864               Perl, for example, is supplied with two types of licence: The
1865               GNU GPL and The Artistic Licence (see the files README, Copy‐
1866               ing, and Artistic, or perlgpl and perlartistic).  Larry has
1867               good reasons for NOT just using the GNU GPL.
1868
1869               My personal recommendation, out of respect for Larry, Perl, and
1870               the Perl community at large is to state something simply like:
1871
1872                Copyright (c) 1995 Your Name. All rights reserved.
1873                This program is free software; you can redistribute it and/or
1874                modify it under the same terms as Perl itself.
1875
1876               This statement should at least appear in the README file. You
1877               may also wish to include it in a Copying file and your source
1878               files.  Remember to include the other words in addition to the
1879               Copyright.
1880
1881           ·   Give the module a version/issue/release number.
1882
1883               To be fully compatible with the Exporter and MakeMaker modules
1884               you should store your module's version number in a non-my pack‐
1885               age variable called $VERSION.  This should be a floating point
1886               number with at least two digits after the decimal (i.e., hun‐
1887               dredths, e.g, "$VERSION = "0.01"").  Don't use a "1.3.2" style
1888               version.  See Exporter for details.
1889
1890               It may be handy to add a function or method to retrieve the
1891               number.  Use the number in announcements and archive file names
1892               when releasing the module (ModuleName-1.02.tar.Z).  See perldoc
1893               ExtUtils::MakeMaker.pm for details.
1894
1895           ·   How to release and distribute a module.
1896
1897               It's good idea to post an announcement of the availability of
1898               your module (or the module itself if small) to the
1899               comp.lang.perl.announce Usenet newsgroup.  This will at least
1900               ensure very wide once-off distribution.
1901
1902               If possible, register the module with CPAN.  You should include
1903               details of its location in your announcement.
1904
1905               Some notes about ftp archives: Please use a long descriptive
1906               file name that includes the version number. Most incoming
1907               directories will not be readable/listable, i.e., you won't be
1908               able to see your file after uploading it. Remember to send your
1909               email notification message as soon as possible after uploading
1910               else your file may get deleted automatically. Allow time for
1911               the file to be processed and/or check the file has been pro‐
1912               cessed before announcing its location.
1913
1914               FTP Archives for Perl Modules:
1915
1916               Follow the instructions and links on:
1917
1918                  http://www.cpan.org/modules/00modlist.long.html
1919                  http://www.cpan.org/modules/04pause.html
1920
1921               or upload to one of these sites:
1922
1923                  https://pause.kbx.de/pause/
1924                  http://pause.perl.org/pause/
1925
1926               and notify <modules@perl.org>.
1927
1928               By using the WWW interface you can ask the Upload Server to
1929               mirror your modules from your ftp or WWW site into your own
1930               directory on CPAN!
1931
1932               Please remember to send me an updated entry for the Module
1933               list!
1934
1935           ·   Take care when changing a released module.
1936
1937               Always strive to remain compatible with previous released ver‐
1938               sions.  Otherwise try to add a mechanism to revert to the old
1939               behavior if people rely on it.  Document incompatible changes.
1940
1941       Guidelines for Converting Perl 4 Library Scripts into Modules
1942
1943       ·   There is no requirement to convert anything.
1944
1945           If it ain't broke, don't fix it! Perl 4 library scripts should con‐
1946           tinue to work with no problems. You may need to make some minor
1947           changes (like escaping non-array @'s in double quoted strings) but
1948           there is no need to convert a .pl file into a Module for just that.
1949
1950       ·   Consider the implications.
1951
1952           All Perl applications that make use of the script will need to be
1953           changed (slightly) if the script is converted into a module.  Is it
1954           worth it unless you plan to make other changes at the same time?
1955
1956       ·   Make the most of the opportunity.
1957
1958           If you are going to convert the script to a module you can use the
1959           opportunity to redesign the interface.  The guidelines for module
1960           creation above include many of the issues you should consider.
1961
1962       ·   The pl2pm utility will get you started.
1963
1964           This utility will read *.pl files (given as parameters) and write
1965           corresponding *.pm files. The pl2pm utilities does the following:
1966
1967           ·         Adds the standard Module prologue lines
1968
1969           ·         Converts package specifiers from ' to ::
1970
1971           ·         Converts die(...) to croak(...)
1972
1973           ·         Several other minor changes
1974
1975           Being a mechanical process pl2pm is not bullet proof. The converted
1976           code will need careful checking, especially any package statements.
1977           Don't delete the original .pl file till the new .pm one works!
1978
1979       Guidelines for Reusing Application Code
1980
1981       ·   Complete applications rarely belong in the Perl Module Library.
1982
1983       ·   Many applications contain some Perl code that could be reused.
1984
1985           Help save the world! Share your code in a form that makes it easy
1986           to reuse.
1987
1988       ·   Break-out the reusable code into one or more separate module files.
1989
1990       ·   Take the opportunity to reconsider and redesign the interfaces.
1991
1992       ·   In some cases the 'application' can then be reduced to a small
1993
1994           fragment of code built on top of the reusable modules. In these
1995           cases the application could invoked as:
1996
1997                % perl -e 'use Module::Name; method(@ARGV)' ...
1998           or
1999                % perl -mModule::Name ...    (in perl5.002 or higher)
2000

NOTE

2002       Perl does not enforce private and public parts of its modules as you
2003       may have been used to in other languages like C++, Ada, or Modula-17.
2004       Perl doesn't have an infatuation with enforced privacy.  It would pre‐
2005       fer that you stayed out of its living room because you weren't invited,
2006       not because it has a shotgun.
2007
2008       The module and its user have a contract, part of which is common law,
2009       and part of which is "written".  Part of the common law contract is
2010       that a module doesn't pollute any namespace it wasn't asked to.  The
2011       written contract for the module (A.K.A. documentation) may make other
2012       provisions.  But then you know when you "use RedefineTheWorld" that
2013       you're redefining the world and willing to take the consequences.
2014
2015
2016
2017perl v5.8.8                       2006-01-07                     PERLMODLIB(1)
Impressum