1PERLMODLIB(1) Perl Programmers Reference Guide PERLMODLIB(1)
2
3
4
6 perlmodlib - constructing new Perl modules and finding existing ones
7
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
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
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
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)