291361655ca2ba7d107855633e5e2646ff149316
[p5sagit/p5-mst-13.2.git] / pod / perlmodlib.pod
1 =for maintainers
2 Generated by perlmodlib.PL -- DO NOT EDIT!
3
4 =head1 NAME
5
6 perlmodlib - constructing new Perl modules and finding existing ones
7
8 =head1 THE PERL MODULE LIBRARY
9
10 Many modules are included in the Perl distribution.  These are described
11 below, and all end in F<.pm>.  You may discover compiled library
12 files (usually ending in F<.so>) or small pieces of modules to be
13 autoloaded (ending in F<.al>); these were automatically generated
14 by the installation process.  You may also discover files in the
15 library directory that end in either F<.pl> or F<.ph>.  These are
16 old libraries supplied so that old programs that use them still
17 run.  The F<.pl> files will all eventually be converted into standard
18 modules, and the F<.ph> files made by B<h2ph> will probably end up
19 as extension modules made by B<h2xs>.  (Some F<.ph> values may
20 already be available through the POSIX, Errno, or Fcntl modules.)
21 The B<pl2pm> file in the distribution may help in your conversion,
22 but it's just a mechanical process and therefore far from bulletproof.
23
24 =head2 Pragmatic Modules
25
26 They work somewhat like compiler directives (pragmata) in that they
27 tend to affect the compilation of your program, and thus will usually
28 work well only when used within a C<use>, or C<no>.  Most of these
29 are lexically scoped, so an inner BLOCK may countermand them
30 by saying:
31
32     no integer;
33     no strict 'refs';
34     no warnings;
35
36 which lasts until the end of that BLOCK.
37
38 Some pragmas are lexically scoped--typically those that affect the
39 C<$^H> hints variable.  Others affect the current package instead,
40 like C<use vars> and C<use subs>, which allow you to predeclare a
41 variables or subroutines within a particular I<file> rather than
42 just a block.  Such declarations are effective for the entire file
43 for which they were declared.  You cannot rescind them with C<no
44 vars> or C<no subs>.
45
46 The following pragmas are defined (and have their own documentation).
47
48 =over 12
49
50 =item attributes
51
52 Get/set subroutine or variable attributes
53
54 =item attrs
55
56 Set/get attributes of a subroutine (deprecated)
57
58 =item autodie
59
60 Replace functions with ones that succeed or die with lexical scope
61
62 =item autouse
63
64 Postpone load of modules until a function is used
65
66 =item base
67
68 Establish an ISA relationship with base classes at compile time
69
70 =item bigint
71
72 Transparent BigInteger support for Perl
73
74 =item bignum
75
76 Transparent BigNumber support for Perl
77
78 =item bigrat
79
80 Transparent BigNumber/BigRational support for Perl
81
82 =item blib
83
84 Use MakeMaker's uninstalled version of a package
85
86 =item bytes
87
88 Force byte semantics rather than character semantics
89
90 =item charnames
91
92 Define character names for C<\N{named}> string literal escapes
93
94 =item constant
95
96 Declare constants
97
98 =item diagnostics
99
100 Produce verbose warning diagnostics
101
102 =item encoding
103
104 Allows you to write your script in non-ascii or non-utf8
105
106 =item encoding::warnings
107
108 Warn on implicit encoding conversions
109
110 =item feature
111
112 Enable new syntactic features
113
114 =item fields
115
116 Compile-time class fields
117
118 =item filetest
119
120 Control the filetest permission operators
121
122 =item if
123
124 C<use> a Perl module if a condition holds
125
126 =item integer
127
128 Use integer arithmetic instead of floating point
129
130 =item less
131
132 Request less of something
133
134 =item lib
135
136 Manipulate @INC at compile time
137
138 =item locale
139
140 Use and avoid POSIX locales for built-in operations
141
142 =item mro
143
144 Method Resolution Order
145
146 =item open
147
148 Set default PerlIO layers for input and output
149
150 =item ops
151
152 Restrict unsafe operations when compiling
153
154 =item overload
155
156 Package for overloading Perl operations
157
158 =item parent
159
160 Establish an ISA relationship with base classes at compile time
161
162 =item re
163
164 Alter regular expression behaviour
165
166 =item sigtrap
167
168 Enable simple signal handling
169
170 =item sort
171
172 Control sort() behaviour
173
174 =item strict
175
176 Restrict unsafe constructs
177
178 =item subs
179
180 Predeclare sub names
181
182 =item threads
183
184 Perl interpreter-based threads
185
186 =item threads::shared
187
188 Perl extension for sharing data structures between threads
189
190 =item utf8
191
192 Enable/disable UTF-8 (or UTF-EBCDIC) in source code
193
194 =item vars
195
196 Predeclare global variable names (obsolete)
197
198 =item version
199
200 Perl extension for Version Objects
201
202 =item vmsish
203
204 Control VMS-specific language features
205
206 =item warnings
207
208 Control optional warnings
209
210 =item warnings::register
211
212 Warnings import function
213
214 =back
215
216 =head2 Standard Modules
217
218 Standard, bundled modules are all expected to behave in a well-defined
219 manner with respect to namespace pollution because they use the
220 Exporter module.  See their own documentation for details.
221
222 It's possible that not all modules listed below are installed on your
223 system. For example, the GDBM_File module will not be installed if you
224 don't have the gdbm library.
225
226 =over 12
227
228 =item AnyDBM_File
229
230 Provide framework for multiple DBMs
231
232 =item App::Prove
233
234 Implements the C<prove> command.
235
236 =item App::Prove::State
237
238 State storage for the C<prove> command.
239
240 =item Archive::Extract
241
242 A generic archive extracting mechanism
243
244 =item Archive::Tar
245
246 Module for manipulations of tar archives
247
248 =item Archive::Tar::File
249
250 A subclass for in-memory extracted file from Archive::Tar
251
252 =item Attribute::Handlers
253
254 Simpler definition of attribute handlers
255
256 =item AutoLoader
257
258 Load subroutines only on demand
259
260 =item AutoSplit
261
262 Split a package for autoloading
263
264 =item B
265
266 The Perl Compiler
267
268 =item B::Concise
269
270 Walk Perl syntax tree, printing concise info about ops
271
272 =item B::Debug
273
274 Walk Perl syntax tree, printing debug info about ops
275
276 =item B::Deparse
277
278 Perl compiler backend to produce perl code
279
280 =item B::Lint
281
282 Perl lint
283
284 =item B::Lint::Debug
285
286 Adds debugging stringification to B::
287
288 =item B::Showlex
289
290 Show lexical variables used in functions or files
291
292 =item B::Terse
293
294 Walk Perl syntax tree, printing terse info about ops
295
296 =item B::Xref
297
298 Generates cross reference reports for Perl programs
299
300 =item Benchmark
301
302 Benchmark running times of Perl code
303
304 =item CGI
305
306 Simple Common Gateway Interface Class
307
308 =item CGI::Apache
309
310 Backward compatibility module for CGI.pm
311
312 =item CGI::Carp
313
314 CGI routines for writing to the HTTPD (or other) error log
315
316 =item CGI::Cookie
317
318 Interface to Netscape Cookies
319
320 =item CGI::Fast
321
322 CGI Interface for Fast CGI
323
324 =item CGI::Pretty
325
326 Module to produce nicely formatted HTML code
327
328 =item CGI::Push
329
330 Simple Interface to Server Push
331
332 =item CGI::Switch
333
334 Backward compatibility module for defunct CGI::Switch
335
336 =item CGI::Util
337
338 Internal utilities used by CGI module
339
340 =item CORE
341
342 Pseudo-namespace for Perl's core routines
343
344 =item CPAN
345
346 Query, download and build perl modules from CPAN sites
347
348 =item CPAN::API::HOWTO
349
350 A recipe book for programming with CPAN.pm
351
352 =item CPAN::FirstTime
353
354 Utility for CPAN::Config file Initialization
355
356 =item CPAN::Kwalify
357
358 Interface between CPAN.pm and Kwalify.pm
359
360 =item CPAN::Nox
361
362 Wrapper around CPAN.pm without using any XS module
363
364 =item CPAN::Version
365
366 Utility functions to compare CPAN versions
367
368 =item CPANPLUS
369
370 API & CLI access to the CPAN mirrors
371
372 =item CPANPLUS::Dist::Base
373
374 Base class for custom distribution classes
375
376 =item CPANPLUS::Dist::Sample
377
378 Sample code to create your own Dist::* plugin
379
380 =item CPANPLUS::Shell::Classic
381
382 CPAN.pm emulation for CPANPLUS
383
384 =item CPANPLUS::Shell::Default::Plugins::HOWTO
385
386 Documentation on how to write your own plugins
387
388 =item Carp
389
390 Warn of errors (from perspective of caller)
391
392 =item Carp::Heavy
393
394 Heavy machinery, no user serviceable parts inside
395
396 =item Class::ISA
397
398 Report the search path for a class's ISA tree
399
400 =item Class::Struct
401
402 Declare struct-like datatypes as Perl classes
403
404 =item Compress::Raw::Zlib
405
406 Low-Level Interface to zlib compression library
407
408 =item Compress::Zlib
409
410 Interface to zlib compression library
411
412 =item Config
413
414 Access Perl configuration information
415
416 =item Cwd
417
418 Get pathname of current working directory
419
420 =item DB
421
422 Programmatic interface to the Perl debugging API
423
424 =item DBM_Filter
425
426 Filter DBM keys/values 
427
428 =item DBM_Filter::compress
429
430 Filter for DBM_Filter
431
432 =item DBM_Filter::encode
433
434 Filter for DBM_Filter
435
436 =item DBM_Filter::int32
437
438 Filter for DBM_Filter
439
440 =item DBM_Filter::null
441
442 Filter for DBM_Filter
443
444 =item DBM_Filter::utf8
445
446 Filter for DBM_Filter
447
448 =item DB_File
449
450 Perl5 access to Berkeley DB version 1.x
451
452 =item Data::Dumper
453
454 Stringified perl data structures, suitable for both printing and C<eval>
455
456 =item Devel::DProf
457
458 A Perl code profiler
459
460 =item Devel::InnerPackage
461
462 Find all the inner packages of a package
463
464 =item Devel::Peek
465
466 A data debugging tool for the XS programmer
467
468 =item Devel::SelfStubber
469
470 Generate stubs for a SelfLoading module
471
472 =item Digest
473
474 Modules that calculate message digests
475
476 =item Digest::MD5
477
478 Perl interface to the MD5 Algorithm
479
480 =item Digest::SHA
481
482 Perl extension for SHA-1/224/256/384/512
483
484 =item Digest::base
485
486 Digest base class
487
488 =item Digest::file
489
490 Calculate digests of files
491
492 =item DirHandle
493
494 Supply object methods for directory handles
495
496 =item Dumpvalue
497
498 Provides screen dump of Perl data.
499
500 =item DynaLoader
501
502 Dynamically load C libraries into Perl code
503
504 =item Encode
505
506 Character encodings
507
508 =item Encode::Alias
509
510 Alias definitions to encodings
511
512 =item Encode::Byte
513
514 Single Byte Encodings
515
516 =item Encode::CJKConstants
517
518 Internally used by Encode::??::ISO_2022_*
519
520 =item Encode::CN
521
522 China-based Chinese Encodings
523
524 =item Encode::CN::HZ
525
526 Internally used by Encode::CN
527
528 =item Encode::Config
529
530 Internally used by Encode
531
532 =item Encode::EBCDIC
533
534 EBCDIC Encodings
535
536 =item Encode::Encoder
537
538 Object Oriented Encoder
539
540 =item Encode::Encoding
541
542 Encode Implementation Base Class
543
544 =item Encode::GSM0338
545
546 ESTI GSM 03.38 Encoding
547
548 =item Encode::Guess
549
550 Guesses encoding from data
551
552 =item Encode::JP
553
554 Japanese Encodings
555
556 =item Encode::JP::H2Z
557
558 Internally used by Encode::JP::2022_JP*
559
560 =item Encode::JP::JIS7
561
562 Internally used by Encode::JP
563
564 =item Encode::KR
565
566 Korean Encodings
567
568 =item Encode::KR::2022_KR
569
570 Internally used by Encode::KR
571
572 =item Encode::MIME::Header
573
574 MIME 'B' and 'Q' header encoding
575
576 =item Encode::MIME::Name
577
578 Internally used by Encode
579
580 =item Encode::PerlIO
581
582 A detailed document on Encode and PerlIO
583
584 =item Encode::Supported
585
586 Encodings supported by Encode
587
588 =item Encode::Symbol
589
590 Symbol Encodings
591
592 =item Encode::TW
593
594 Taiwan-based Chinese Encodings
595
596 =item Encode::Unicode
597
598 Various Unicode Transformation Formats
599
600 =item Encode::Unicode::UTF7
601
602 UTF-7 encoding
603
604 =item English
605
606 Use nice English (or awk) names for ugly punctuation variables
607
608 =item Env
609
610 Perl module that imports environment variables as scalars or arrays
611
612 =item Errno
613
614 System errno constants
615
616 =item Exporter
617
618 Implements default import method for modules
619
620 =item Exporter::Heavy
621
622 Exporter guts
623
624 =item ExtUtils::CBuilder
625
626 Compile and link C code for Perl modules
627
628 =item ExtUtils::CBuilder::Platform::Windows
629
630 Builder class for Windows platforms
631
632 =item ExtUtils::Command
633
634 Utilities to replace common UNIX commands in Makefiles etc.
635
636 =item ExtUtils::Command::MM
637
638 Commands for the MM's to use in Makefiles
639
640 =item ExtUtils::Constant
641
642 Generate XS code to import C header constants
643
644 =item ExtUtils::Constant::Base
645
646 Base class for ExtUtils::Constant objects
647
648 =item ExtUtils::Constant::Utils
649
650 Helper functions for ExtUtils::Constant
651
652 =item ExtUtils::Constant::XS
653
654 Base class for ExtUtils::Constant objects
655
656 =item ExtUtils::Embed
657
658 Utilities for embedding Perl in C/C++ applications
659
660 =item ExtUtils::Install
661
662 Install files from here to there
663
664 =item ExtUtils::Installed
665
666 Inventory management of installed modules
667
668 =item ExtUtils::Liblist
669
670 Determine libraries to use and how to use them
671
672 =item ExtUtils::MM
673
674 OS adjusted ExtUtils::MakeMaker subclass
675
676 =item ExtUtils::MM_AIX
677
678 AIX specific subclass of ExtUtils::MM_Unix
679
680 =item ExtUtils::MM_Any
681
682 Platform-agnostic MM methods
683
684 =item ExtUtils::MM_BeOS
685
686 Methods to override UN*X behaviour in ExtUtils::MakeMaker
687
688 =item ExtUtils::MM_Cygwin
689
690 Methods to override UN*X behaviour in ExtUtils::MakeMaker
691
692 =item ExtUtils::MM_DOS
693
694 DOS specific subclass of ExtUtils::MM_Unix
695
696 =item ExtUtils::MM_Darwin
697
698 Special behaviors for OS X
699
700 =item ExtUtils::MM_MacOS
701
702 Once produced Makefiles for MacOS Classic
703
704 =item ExtUtils::MM_NW5
705
706 Methods to override UN*X behaviour in ExtUtils::MakeMaker
707
708 =item ExtUtils::MM_OS2
709
710 Methods to override UN*X behaviour in ExtUtils::MakeMaker
711
712 =item ExtUtils::MM_QNX
713
714 QNX specific subclass of ExtUtils::MM_Unix
715
716 =item ExtUtils::MM_UWIN
717
718 U/WIN specific subclass of ExtUtils::MM_Unix
719
720 =item ExtUtils::MM_Unix
721
722 Methods used by ExtUtils::MakeMaker
723
724 =item ExtUtils::MM_VMS
725
726 Methods to override UN*X behaviour in ExtUtils::MakeMaker
727
728 =item ExtUtils::MM_VOS
729
730 VOS specific subclass of ExtUtils::MM_Unix
731
732 =item ExtUtils::MM_Win32
733
734 Methods to override UN*X behaviour in ExtUtils::MakeMaker
735
736 =item ExtUtils::MM_Win95
737
738 Method to customize MakeMaker for Win9X
739
740 =item ExtUtils::MY
741
742 ExtUtils::MakeMaker subclass for customization
743
744 =item ExtUtils::MakeMaker
745
746 Create a module Makefile
747
748 =item ExtUtils::MakeMaker::Config
749
750 Wrapper around Config.pm
751
752 =item ExtUtils::MakeMaker::FAQ
753
754 Frequently Asked Questions About MakeMaker
755
756 =item ExtUtils::MakeMaker::Tutorial
757
758 Writing a module with MakeMaker
759
760 =item ExtUtils::MakeMaker::bytes
761
762 Version-agnostic bytes.pm
763
764 =item ExtUtils::MakeMaker::vmsish
765
766 Platform-agnostic vmsish.pm
767
768 =item ExtUtils::Manifest
769
770 Utilities to write and check a MANIFEST file
771
772 =item ExtUtils::Mkbootstrap
773
774 Make a bootstrap file for use by DynaLoader
775
776 =item ExtUtils::Mksymlists
777
778 Write linker options files for dynamic extension
779
780 =item ExtUtils::Packlist
781
782 Manage .packlist files
783
784 =item ExtUtils::ParseXS
785
786 Converts Perl XS code into C code
787
788 =item ExtUtils::testlib
789
790 Add blib/* directories to @INC
791
792 =item Fatal
793
794 Replace functions with equivalents which succeed or die
795
796 =item Fcntl
797
798 Load the C Fcntl.h defines
799
800 =item File::Basename
801
802 Parse file paths into directory, filename and suffix.
803
804 =item File::CheckTree
805
806 Run many filetest checks on a tree
807
808 =item File::Compare
809
810 Compare files or filehandles
811
812 =item File::Copy
813
814 Copy files or filehandles
815
816 =item File::DosGlob
817
818 DOS like globbing and then some
819
820 =item File::Fetch
821
822 A generic file fetching mechanism
823
824 =item File::Find
825
826 Traverse a directory tree.
827
828 =item File::Glob
829
830 Perl extension for BSD glob routine
831
832 =item File::GlobMapper
833
834 Extend File Glob to Allow Input and Output Files
835
836 =item File::Path
837
838 Create or remove directory trees
839
840 =item File::Spec
841
842 Portably perform operations on file names
843
844 =item File::Spec::Cygwin
845
846 Methods for Cygwin file specs
847
848 =item File::Spec::Epoc
849
850 Methods for Epoc file specs
851
852 =item File::Spec::Functions
853
854 Portably perform operations on file names
855
856 =item File::Spec::Mac
857
858 File::Spec for Mac OS (Classic)
859
860 =item File::Spec::OS2
861
862 Methods for OS/2 file specs
863
864 =item File::Spec::Unix
865
866 File::Spec for Unix, base for other File::Spec modules
867
868 =item File::Spec::VMS
869
870 Methods for VMS file specs
871
872 =item File::Spec::Win32
873
874 Methods for Win32 file specs
875
876 =item File::Temp
877
878 Return name and handle of a temporary file safely
879
880 =item File::stat
881
882 By-name interface to Perl's built-in stat() functions
883
884 =item FileCache
885
886 Keep more files open than the system permits
887
888 =item FileHandle
889
890 Supply object methods for filehandles
891
892 =item Filter::Simple
893
894 Simplified source filtering
895
896 =item Filter::Util::Call
897
898 Perl Source Filter Utility Module
899
900 =item FindBin
901
902 Locate directory of original perl script
903
904 =item GDBM_File
905
906 Perl5 access to the gdbm library.
907
908 =item Getopt::Long
909
910 Extended processing of command line options
911
912 =item Getopt::Std
913
914 Process single-character switches with switch clustering
915
916 =item Hash::Util
917
918 A selection of general-utility hash subroutines
919
920 =item Hash::Util::FieldHash
921
922 Support for Inside-Out Classes
923
924 =item I18N::Collate
925
926 Compare 8-bit scalar data according to the current locale
927
928 =item I18N::LangTags
929
930 Functions for dealing with RFC3066-style language tags
931
932 =item I18N::LangTags::Detect
933
934 Detect the user's language preferences
935
936 =item I18N::LangTags::List
937
938 Tags and names for human languages
939
940 =item I18N::Langinfo
941
942 Query locale information
943
944 =item IO
945
946 Load various IO modules
947
948 =item IO::Compress::Base
949
950 Base Class for IO::Compress modules 
951
952 =item IO::Compress::Deflate
953
954 Write RFC 1950 files/buffers
955
956 =item IO::Compress::Gzip
957
958 Write RFC 1952 files/buffers
959
960 =item IO::Compress::RawDeflate
961
962 Write RFC 1951 files/buffers
963
964 =item IO::Compress::Zip
965
966 Write zip files/buffers
967
968 =item IO::Dir
969
970 Supply object methods for directory handles
971
972 =item IO::File
973
974 Supply object methods for filehandles
975
976 =item IO::Handle
977
978 Supply object methods for I/O handles
979
980 =item IO::Pipe
981
982 Supply object methods for pipes
983
984 =item IO::Poll
985
986 Object interface to system poll call
987
988 =item IO::Seekable
989
990 Supply seek based methods for I/O objects
991
992 =item IO::Select
993
994 OO interface to the select system call
995
996 =item IO::Socket
997
998 Object interface to socket communications
999
1000 =item IO::Socket::INET
1001
1002 Object interface for AF_INET domain sockets
1003
1004 =item IO::Socket::UNIX
1005
1006 Object interface for AF_UNIX domain sockets
1007
1008 =item IO::Uncompress::AnyInflate
1009
1010 Uncompress zlib-based (zip, gzip) file/buffer
1011
1012 =item IO::Uncompress::AnyUncompress
1013
1014 Uncompress gzip, zip, bzip2 or lzop file/buffer
1015
1016 =item IO::Uncompress::Base
1017
1018 Base Class for IO::Uncompress modules 
1019
1020 =item IO::Uncompress::Gunzip
1021
1022 Read RFC 1952 files/buffers
1023
1024 =item IO::Uncompress::Inflate
1025
1026 Read RFC 1950 files/buffers
1027
1028 =item IO::Uncompress::RawInflate
1029
1030 Read RFC 1951 files/buffers
1031
1032 =item IO::Uncompress::Unzip
1033
1034 Read zip files/buffers
1035
1036 =item IO::Zlib
1037
1038 IO:: style interface to L<Compress::Zlib>
1039
1040 =item IPC::Cmd
1041
1042 Finding and running system commands made easy
1043
1044 =item IPC::Msg
1045
1046 SysV Msg IPC object class
1047
1048 =item IPC::Open2
1049
1050 Open a process for both reading and writing
1051
1052 =item IPC::Open3
1053
1054 Open a process for reading, writing, and error handling
1055
1056 =item IPC::Semaphore
1057
1058 SysV Semaphore IPC object class
1059
1060 =item IPC::SharedMem
1061
1062 SysV Shared Memory IPC object class
1063
1064 =item IPC::SysV
1065
1066 System V IPC constants and system calls
1067
1068 =item List::Util
1069
1070 A selection of general-utility list subroutines
1071
1072 =item Locale::Constants
1073
1074 Constants for Locale codes
1075
1076 =item Locale::Country
1077
1078 ISO codes for country identification (ISO 3166)
1079
1080 =item Locale::Currency
1081
1082 ISO three letter codes for currency identification (ISO 4217)
1083
1084 =item Locale::Language
1085
1086 ISO two letter codes for language identification (ISO 639)
1087
1088 =item Locale::Maketext
1089
1090 Framework for localization
1091
1092 =item Locale::Maketext::Simple
1093
1094 Simple interface to Locale::Maketext::Lexicon
1095
1096 =item Locale::Maketext::TPJ13
1097
1098 Article about software localization
1099
1100 =item Locale::Script
1101
1102 ISO codes for script identification (ISO 15924)
1103
1104 =item Log::Message
1105
1106 A generic message storing mechanism;
1107
1108 =item Log::Message::Config
1109
1110 Configuration options for Log::Message
1111
1112 =item Log::Message::Handlers
1113
1114 Message handlers for Log::Message
1115
1116 =item Log::Message::Item
1117
1118 Message objects for Log::Message
1119
1120 =item MIME::Base64
1121
1122 Encoding and decoding of base64 strings
1123
1124 =item MIME::QuotedPrint
1125
1126 Encoding and decoding of quoted-printable strings
1127
1128 =item Math::BigFloat
1129
1130 Arbitrary size floating point math package
1131
1132 =item Math::BigInt
1133
1134 Arbitrary size integer/float math package
1135
1136 =item Math::BigInt::Calc
1137
1138 Pure Perl module to support Math::BigInt
1139
1140 =item Math::BigInt::CalcEmu
1141
1142 Emulate low-level math with BigInt code
1143
1144 =item Math::BigInt::FastCalc
1145
1146 Math::BigInt::Calc with some XS for more speed
1147
1148 =item Math::BigRat
1149
1150 Arbitrary big rational numbers
1151
1152 =item Math::Complex
1153
1154 Complex numbers and associated mathematical functions
1155
1156 =item Math::Trig
1157
1158 Trigonometric functions
1159
1160 =item Memoize
1161
1162 Make functions faster by trading space for time
1163
1164 =item Memoize::AnyDBM_File
1165
1166 Glue to provide EXISTS for AnyDBM_File for Storable use
1167
1168 =item Memoize::Expire
1169
1170 Plug-in module for automatic expiration of memoized values
1171
1172 =item Memoize::ExpireFile
1173
1174 Test for Memoize expiration semantics
1175
1176 =item Memoize::ExpireTest
1177
1178 Test for Memoize expiration semantics
1179
1180 =item Memoize::NDBM_File
1181
1182 Glue to provide EXISTS for NDBM_File for Storable use
1183
1184 =item Memoize::SDBM_File
1185
1186 Glue to provide EXISTS for SDBM_File for Storable use
1187
1188 =item Memoize::Storable
1189
1190 Store Memoized data in Storable database
1191
1192 =item Module::Build
1193
1194 Build and install Perl modules
1195
1196 =item Module::Build::API
1197
1198 API Reference for Module Authors
1199
1200 =item Module::Build::Authoring
1201
1202 Authoring Module::Build modules
1203
1204 =item Module::Build::Base
1205
1206 Default methods for Module::Build
1207
1208 =item Module::Build::Compat
1209
1210 Compatibility with ExtUtils::MakeMaker
1211
1212 =item Module::Build::ConfigData
1213
1214 Configuration for Module::Build
1215
1216 =item Module::Build::Cookbook
1217
1218 Examples of Module::Build Usage
1219
1220 =item Module::Build::ModuleInfo
1221
1222 Gather package and POD information from a perl module files
1223
1224 =item Module::Build::Notes
1225
1226 Configuration for $module_name
1227
1228 =item Module::Build::PPMMaker
1229
1230 Perl Package Manager file creation
1231
1232 =item Module::Build::Platform::Amiga
1233
1234 Builder class for Amiga platforms
1235
1236 =item Module::Build::Platform::Default
1237
1238 Stub class for unknown platforms
1239
1240 =item Module::Build::Platform::EBCDIC
1241
1242 Builder class for EBCDIC platforms
1243
1244 =item Module::Build::Platform::MPEiX
1245
1246 Builder class for MPEiX platforms
1247
1248 =item Module::Build::Platform::MacOS
1249
1250 Builder class for MacOS platforms
1251
1252 =item Module::Build::Platform::RiscOS
1253
1254 Builder class for RiscOS platforms
1255
1256 =item Module::Build::Platform::Unix
1257
1258 Builder class for Unix platforms
1259
1260 =item Module::Build::Platform::VMS
1261
1262 Builder class for VMS platforms
1263
1264 =item Module::Build::Platform::VOS
1265
1266 Builder class for VOS platforms
1267
1268 =item Module::Build::Platform::Windows
1269
1270 Builder class for Windows platforms
1271
1272 =item Module::Build::Platform::aix
1273
1274 Builder class for AIX platform
1275
1276 =item Module::Build::Platform::cygwin
1277
1278 Builder class for Cygwin platform
1279
1280 =item Module::Build::Platform::darwin
1281
1282 Builder class for Mac OS X platform
1283
1284 =item Module::Build::Platform::os2
1285
1286 Builder class for OS/2 platform
1287
1288 =item Module::Build::YAML
1289
1290 Provides just enough YAML support so that Module::Build works even if YAML.pm is not installed
1291
1292 =item Module::CoreList
1293
1294 What modules shipped with versions of perl
1295
1296 =item Module::Load
1297
1298 Runtime require of both modules and files
1299
1300 =item Module::Load::Conditional
1301
1302 Looking up module information / loading at runtime
1303
1304 =item Module::Loaded
1305
1306 Mark modules as loaded or unloaded
1307
1308 =item Module::Pluggable
1309
1310 Automatically give your module the ability to have plugins
1311
1312 =item Module::Pluggable::Object
1313
1314 Automatically give your module the ability to have plugins
1315
1316 =item NDBM_File
1317
1318 Tied access to ndbm files
1319
1320 =item NEXT
1321
1322 Provide a pseudo-class NEXT (et al) that allows method redispatch
1323
1324 =item Net::Cmd
1325
1326 Network Command class (as used by FTP, SMTP etc)
1327
1328 =item Net::Config
1329
1330 Local configuration data for libnet
1331
1332 =item Net::Domain
1333
1334 Attempt to evaluate the current host's internet name and domain
1335
1336 =item Net::FTP
1337
1338 FTP Client class
1339
1340 =item Net::NNTP
1341
1342 NNTP Client class
1343
1344 =item Net::Netrc
1345
1346 OO interface to users netrc file
1347
1348 =item Net::POP3
1349
1350 Post Office Protocol 3 Client class (RFC1939)
1351
1352 =item Net::Ping
1353
1354 Check a remote host for reachability
1355
1356 =item Net::SMTP
1357
1358 Simple Mail Transfer Protocol Client
1359
1360 =item Net::Time
1361
1362 Time and daytime network client interface
1363
1364 =item Net::hostent
1365
1366 By-name interface to Perl's built-in gethost*() functions
1367
1368 =item Net::libnetFAQ
1369
1370 Libnet Frequently Asked Questions
1371
1372 =item Net::netent
1373
1374 By-name interface to Perl's built-in getnet*() functions
1375
1376 =item Net::protoent
1377
1378 By-name interface to Perl's built-in getproto*() functions
1379
1380 =item Net::servent
1381
1382 By-name interface to Perl's built-in getserv*() functions
1383
1384 =item O
1385
1386 Generic interface to Perl Compiler backends
1387
1388 =item ODBM_File
1389
1390 Tied access to odbm files
1391
1392 =item Opcode
1393
1394 Disable named opcodes when compiling perl code
1395
1396 =item POSIX
1397
1398 Perl interface to IEEE Std 1003.1
1399
1400 =item Package::Constants
1401
1402 List all constants declared in a package
1403
1404 =item Params::Check
1405
1406 A generic input parsing/checking mechanism.
1407
1408 =item PerlIO
1409
1410 On demand loader for PerlIO layers and root of PerlIO::* name space
1411
1412 =item PerlIO::encoding
1413
1414 Encoding layer
1415
1416 =item PerlIO::scalar
1417
1418 In-memory IO, scalar IO
1419
1420 =item PerlIO::via
1421
1422 Helper class for PerlIO layers implemented in perl
1423
1424 =item PerlIO::via::QuotedPrint
1425
1426 PerlIO layer for quoted-printable strings
1427
1428 =item Pod::Checker
1429
1430 Check pod documents for syntax errors
1431
1432 =item Pod::Escapes
1433
1434 For resolving Pod EE<lt>...E<gt> sequences
1435
1436 =item Pod::Find
1437
1438 Find POD documents in directory trees
1439
1440 =item Pod::Functions
1441
1442 Group Perl's functions a la perlfunc.pod
1443
1444 =item Pod::Html
1445
1446 Module to convert pod files to HTML
1447
1448 =item Pod::InputObjects
1449
1450 Objects representing POD input paragraphs, commands, etc.
1451
1452 =item Pod::LaTeX
1453
1454 Convert Pod data to formatted Latex
1455
1456 =item Pod::Man
1457
1458 Convert POD data to formatted *roff input
1459
1460 =item Pod::ParseLink
1461
1462 Parse an LE<lt>E<gt> formatting code in POD text
1463
1464 =item Pod::ParseUtils
1465
1466 Helpers for POD parsing and conversion
1467
1468 =item Pod::Parser
1469
1470 Base class for creating POD filters and translators
1471
1472 =item Pod::Perldoc::ToChecker
1473
1474 Let Perldoc check Pod for errors
1475
1476 =item Pod::Perldoc::ToMan
1477
1478 Let Perldoc render Pod as man pages
1479
1480 =item Pod::Perldoc::ToNroff
1481
1482 Let Perldoc convert Pod to nroff
1483
1484 =item Pod::Perldoc::ToPod
1485
1486 Let Perldoc render Pod as ... Pod!
1487
1488 =item Pod::Perldoc::ToRtf
1489
1490 Let Perldoc render Pod as RTF
1491
1492 =item Pod::Perldoc::ToText
1493
1494 Let Perldoc render Pod as plaintext
1495
1496 =item Pod::Perldoc::ToTk
1497
1498 Let Perldoc use Tk::Pod to render Pod
1499
1500 =item Pod::Perldoc::ToXml
1501
1502 Let Perldoc render Pod as XML
1503
1504 =item Pod::PlainText
1505
1506 Convert POD data to formatted ASCII text
1507
1508 =item Pod::Plainer
1509
1510 Perl extension for converting Pod to old style Pod.
1511
1512 =item Pod::Select
1513
1514 Extract selected sections of POD from input
1515
1516 =item Pod::Simple
1517
1518 Framework for parsing Pod
1519
1520 =item Pod::Simple::Checker
1521
1522 Check the Pod syntax of a document
1523
1524 =item Pod::Simple::Debug
1525
1526 Put Pod::Simple into trace/debug mode
1527
1528 =item Pod::Simple::DumpAsText
1529
1530 Dump Pod-parsing events as text
1531
1532 =item Pod::Simple::DumpAsXML
1533
1534 Turn Pod into XML
1535
1536 =item Pod::Simple::HTML
1537
1538 Convert Pod to HTML
1539
1540 =item Pod::Simple::HTMLBatch
1541
1542 Convert several Pod files to several HTML files
1543
1544 =item Pod::Simple::LinkSection
1545
1546 Represent "section" attributes of L codes
1547
1548 =item Pod::Simple::Methody
1549
1550 Turn Pod::Simple events into method calls
1551
1552 =item Pod::Simple::PullParser
1553
1554 A pull-parser interface to parsing Pod
1555
1556 =item Pod::Simple::PullParserEndToken
1557
1558 End-tokens from Pod::Simple::PullParser
1559
1560 =item Pod::Simple::PullParserStartToken
1561
1562 Start-tokens from Pod::Simple::PullParser
1563
1564 =item Pod::Simple::PullParserTextToken
1565
1566 Text-tokens from Pod::Simple::PullParser
1567
1568 =item Pod::Simple::PullParserToken
1569
1570 Tokens from Pod::Simple::PullParser
1571
1572 =item Pod::Simple::RTF
1573
1574 Format Pod as RTF
1575
1576 =item Pod::Simple::Search
1577
1578 Find POD documents in directory trees
1579
1580 =item Pod::Simple::SimpleTree
1581
1582 Parse Pod into a simple parse tree 
1583
1584 =item Pod::Simple::Subclassing
1585
1586 Write a formatter as a Pod::Simple subclass
1587
1588 =item Pod::Simple::Text
1589
1590 Format Pod as plaintext
1591
1592 =item Pod::Simple::TextContent
1593
1594 Get the text content of Pod
1595
1596 =item Pod::Simple::XMLOutStream
1597
1598 Turn Pod into XML
1599
1600 =item Pod::Text
1601
1602 Convert POD data to formatted ASCII text
1603
1604 =item Pod::Text::Color
1605
1606 Convert POD data to formatted color ASCII text
1607
1608 =item Pod::Text::Overstrike
1609
1610 Convert POD data to formatted overstrike text
1611
1612 =item Pod::Text::Termcap
1613
1614 Convert POD data to ASCII text with format escapes
1615
1616 =item Pod::Usage
1617
1618 Print a usage message from embedded pod documentation
1619
1620 =item SDBM_File
1621
1622 Tied access to sdbm files
1623
1624 =item Safe
1625
1626 Compile and execute code in restricted compartments
1627
1628 =item Scalar::Util
1629
1630 A selection of general-utility scalar subroutines
1631
1632 =item Search::Dict
1633
1634 Search for key in dictionary file
1635
1636 =item SelectSaver
1637
1638 Save and restore selected file handle
1639
1640 =item SelfLoader
1641
1642 Load functions only on demand
1643
1644 =item Shell
1645
1646 Run shell commands transparently within perl
1647
1648 =item Socket
1649
1650 Load the C socket.h defines and structure manipulators 
1651
1652 =item Storable
1653
1654 Persistence for Perl data structures
1655
1656 =item Switch
1657
1658 A switch statement for Perl
1659
1660 =item Symbol
1661
1662 Manipulate Perl symbols and their names
1663
1664 =item Sys::Hostname
1665
1666 Try every conceivable way to get hostname
1667
1668 =item Sys::Syslog
1669
1670 Perl interface to the UNIX syslog(3) calls
1671
1672 =item Sys::Syslog::win32::Win32
1673
1674 Win32 support for Sys::Syslog
1675
1676 =item TAP::Base
1677
1678 Base class that provides common functionality to L<TAP::Parser> and L<TAP::Harness>
1679
1680 =item TAP::Formatter::Color
1681
1682 Run Perl test scripts with color
1683
1684 =item TAP::Formatter::Console
1685
1686 Harness output delegate for default console output
1687
1688 =item TAP::Formatter::Console::ParallelSession
1689
1690 Harness output delegate for parallel console output
1691
1692 =item TAP::Formatter::Console::Session
1693
1694 Harness output delegate for default console output
1695
1696 =item TAP::Harness
1697
1698 Run test scripts with statistics
1699
1700 =item TAP::Parser
1701
1702 Parse L<TAP|Test::Harness::TAP> output
1703
1704 =item TAP::Parser::Aggregator
1705
1706 Aggregate TAP::Parser results
1707
1708 =item TAP::Parser::Grammar
1709
1710 A grammar for the Test Anything Protocol.
1711
1712 =item TAP::Parser::Iterator
1713
1714 Internal TAP::Parser Iterator
1715
1716 =item TAP::Parser::Iterator::Array
1717
1718 Internal TAP::Parser Iterator
1719
1720 =item TAP::Parser::Iterator::Process
1721
1722 Internal TAP::Parser Iterator
1723
1724 =item TAP::Parser::Iterator::Stream
1725
1726 Internal TAP::Parser Iterator
1727
1728 =item TAP::Parser::Multiplexer
1729
1730 Multiplex multiple TAP::Parsers
1731
1732 =item TAP::Parser::Result
1733
1734 TAP::Parser output
1735
1736 =item TAP::Parser::Result::Bailout
1737
1738 Bailout result token.
1739
1740 =item TAP::Parser::Result::Comment
1741
1742 Comment result token.
1743
1744 =item TAP::Parser::Result::Plan
1745
1746 Plan result token.
1747
1748 =item TAP::Parser::Result::Pragma
1749
1750 TAP pragma token.
1751
1752 =item TAP::Parser::Result::Test
1753
1754 Test result token.
1755
1756 =item TAP::Parser::Result::Unknown
1757
1758 Unknown result token.
1759
1760 =item TAP::Parser::Result::Version
1761
1762 TAP syntax version token.
1763
1764 =item TAP::Parser::Result::YAML
1765
1766 YAML result token.
1767
1768 =item TAP::Parser::Source
1769
1770 Stream output from some source
1771
1772 =item TAP::Parser::Source::Perl
1773
1774 Stream Perl output
1775
1776 =item TAP::Parser::Utils
1777
1778 Internal TAP::Parser utilities
1779
1780 =item TAP::Parser::YAMLish::Reader
1781
1782 Read YAMLish data from iterator
1783
1784 =item TAP::Parser::YAMLish::Writer
1785
1786 Write YAMLish data
1787
1788 =item Term::ANSIColor
1789
1790 Color screen output using ANSI escape sequences
1791
1792 =item Term::Cap
1793
1794 Perl termcap interface
1795
1796 =item Term::Complete
1797
1798 Perl word completion module
1799
1800 =item Term::ReadLine
1801
1802 Perl interface to various C<readline> packages.
1803
1804 =item Term::UI
1805
1806 Term::ReadLine UI made easy
1807
1808 =item Test
1809
1810 Provides a simple framework for writing test scripts
1811
1812 =item Test::Builder
1813
1814 Backend for building test libraries
1815
1816 =item Test::Builder::Module
1817
1818 Base class for test modules
1819
1820 =item Test::Builder::Tester
1821
1822 Test testsuites that have been built with
1823
1824 =item Test::Builder::Tester::Color
1825
1826 Turn on colour in Test::Builder::Tester
1827
1828 =item Test::Harness
1829
1830 Run Perl standard test scripts with statistics
1831
1832 =item Test::More
1833
1834 Yet another framework for writing test scripts
1835
1836 =item Test::Simple
1837
1838 Basic utilities for writing tests.
1839
1840 =item Test::Tutorial
1841
1842 A tutorial about writing really basic tests
1843
1844 =item Text::Abbrev
1845
1846 Create an abbreviation table from a list
1847
1848 =item Text::Balanced
1849
1850 Extract delimited text sequences from strings.
1851
1852 =item Text::ParseWords
1853
1854 Parse text into an array of tokens or array of arrays
1855
1856 =item Text::Soundex
1857
1858 Implementation of the soundex algorithm.
1859
1860 =item Text::Tabs
1861
1862 Expand and unexpand tabs per the unix expand(1) and unexpand(1)
1863
1864 =item Text::Wrap
1865
1866 Line wrapping to form simple paragraphs
1867
1868 =item Thread
1869
1870 Manipulate threads in Perl (for old code only)
1871
1872 =item Thread::Queue
1873
1874 Thread-safe queues
1875
1876 =item Thread::Semaphore
1877
1878 Thread-safe semaphores
1879
1880 =item Tie::Array
1881
1882 Base class for tied arrays
1883
1884 =item Tie::File
1885
1886 Access the lines of a disk file via a Perl array
1887
1888 =item Tie::Handle
1889
1890 Base class definitions for tied handles
1891
1892 =item Tie::Hash
1893
1894 Base class definitions for tied hashes
1895
1896 =item Tie::Hash::NamedCapture
1897
1898 Named regexp capture buffers
1899
1900 =item Tie::Memoize
1901
1902 Add data to hash when needed
1903
1904 =item Tie::RefHash
1905
1906 Use references as hash keys
1907
1908 =item Tie::Scalar
1909
1910 Base class definitions for tied scalars
1911
1912 =item Tie::SubstrHash
1913
1914 Fixed-table-size, fixed-key-length hashing
1915
1916 =item Time::HiRes
1917
1918 High resolution alarm, sleep, gettimeofday, interval timers
1919
1920 =item Time::Local
1921
1922 Efficiently compute time from local and GMT time
1923
1924 =item Time::Piece
1925
1926 Object Oriented time objects
1927
1928 =item Time::Piece::Seconds
1929
1930 A simple API to convert seconds to other date values
1931
1932 =item Time::gmtime
1933
1934 By-name interface to Perl's built-in gmtime() function
1935
1936 =item Time::localtime
1937
1938 By-name interface to Perl's built-in localtime() function
1939
1940 =item Time::tm
1941
1942 Internal object used by Time::gmtime and Time::localtime
1943
1944 =item UNIVERSAL
1945
1946 Base class for ALL classes (blessed references)
1947
1948 =item Unicode::Collate
1949
1950 Unicode Collation Algorithm
1951
1952 =item Unicode::Normalize
1953
1954 Unicode Normalization Forms
1955
1956 =item Unicode::UCD
1957
1958 Unicode character database
1959
1960 =item User::grent
1961
1962 By-name interface to Perl's built-in getgr*() functions
1963
1964 =item User::pwent
1965
1966 By-name interface to Perl's built-in getpw*() functions
1967
1968 =item Win32
1969
1970 Interfaces to some Win32 API Functions
1971
1972 =item Win32API::File
1973
1974 Low-level access to Win32 system API calls for files/dirs.
1975
1976 =item Win32CORE
1977
1978 Win32 CORE function stubs
1979
1980 =item XS::APItest
1981
1982 Test the perl C API
1983
1984 =item XS::Typemap
1985
1986 Module to test the XS typemaps distributed with perl
1987
1988 =item XSLoader
1989
1990 Dynamically load C libraries into Perl code
1991
1992 =back
1993
1994 To find out I<all> modules installed on your system, including
1995 those without documentation or outside the standard release,
1996 just use the following command (under the default win32 shell,
1997 double quotes should be used instead of single quotes).
1998
1999     % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
2000       'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
2001       no_chdir => 1 }, @INC'
2002
2003 (The -T is here to prevent '.' from being listed in @INC.)
2004 They should all have their own documentation installed and accessible
2005 via your system man(1) command.  If you do not have a B<find>
2006 program, you can use the Perl B<find2perl> program instead, which
2007 generates Perl code as output you can run through perl.  If you
2008 have a B<man> program but it doesn't find your modules, you'll have
2009 to fix your manpath.  See L<perl> for details.  If you have no
2010 system B<man> command, you might try the B<perldoc> program.
2011
2012 Note also that the command C<perldoc perllocal> gives you a (possibly
2013 incomplete) list of the modules that have been further installed on
2014 your system. (The perllocal.pod file is updated by the standard MakeMaker
2015 install process.)
2016
2017 =head2 Extension Modules
2018
2019 Extension modules are written in C (or a mix of Perl and C).  They
2020 are usually dynamically loaded into Perl if and when you need them,
2021 but may also be linked in statically.  Supported extension modules
2022 include Socket, Fcntl, and POSIX.
2023
2024 Many popular C extension modules do not come bundled (at least, not
2025 completely) due to their sizes, volatility, or simply lack of time
2026 for adequate testing and configuration across the multitude of
2027 platforms on which Perl was beta-tested.  You are encouraged to
2028 look for them on CPAN (described below), or using web search engines
2029 like Alta Vista or Google.
2030
2031 =head1 CPAN
2032
2033 CPAN stands for Comprehensive Perl Archive Network; it's a globally
2034 replicated trove of Perl materials, including documentation, style
2035 guides, tricks and traps, alternate ports to non-Unix systems and
2036 occasional binary distributions for these.   Search engines for
2037 CPAN can be found at http://www.cpan.org/
2038
2039 Most importantly, CPAN includes around a thousand unbundled modules,
2040 some of which require a C compiler to build.  Major categories of
2041 modules are:
2042
2043 =over
2044
2045 =item *
2046
2047 Language Extensions and Documentation Tools
2048
2049 =item *
2050
2051 Development Support
2052
2053 =item *
2054
2055 Operating System Interfaces
2056
2057 =item *
2058
2059 Networking, Device Control (modems) and InterProcess Communication
2060
2061 =item *
2062
2063 Data Types and Data Type Utilities
2064
2065 =item *
2066
2067 Database Interfaces
2068
2069 =item *
2070
2071 User Interfaces
2072
2073 =item *
2074
2075 Interfaces to / Emulations of Other Programming Languages
2076
2077 =item *
2078
2079 File Names, File Systems and File Locking (see also File Handles)
2080
2081 =item *
2082
2083 String Processing, Language Text Processing, Parsing, and Searching
2084
2085 =item *
2086
2087 Option, Argument, Parameter, and Configuration File Processing
2088
2089 =item *
2090
2091 Internationalization and Locale
2092
2093 =item *
2094
2095 Authentication, Security, and Encryption
2096
2097 =item *
2098
2099 World Wide Web, HTML, HTTP, CGI, MIME
2100
2101 =item *
2102
2103 Server and Daemon Utilities
2104
2105 =item *
2106
2107 Archiving and Compression
2108
2109 =item *
2110
2111 Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
2112
2113 =item *
2114
2115 Mail and Usenet News
2116
2117 =item *
2118
2119 Control Flow Utilities (callbacks and exceptions etc)
2120
2121 =item *
2122
2123 File Handle and Input/Output Stream Utilities
2124
2125 =item *
2126
2127 Miscellaneous Modules
2128
2129 =back
2130
2131 The list of the registered CPAN sites as of this writing follows.
2132 Please note that the sorting order is alphabetical on fields:
2133
2134 Continent
2135    |
2136    |-->Country
2137          |
2138          |-->[state/province]
2139                    |
2140                    |-->ftp
2141                    |
2142                    |-->[http]
2143
2144 and thus the North American servers happen to be listed between the
2145 European and the South American sites.
2146
2147 You should try to choose one close to you.
2148
2149 =head2 Africa
2150
2151 =over 4
2152
2153 =item South Africa
2154
2155                       http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
2156                       ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
2157                       ftp://ftp.is.co.za/programming/perl/CPAN/
2158                       ftp://ftp.saix.net/pub/CPAN/
2159                       ftp://ftp.sun.ac.za/CPAN/CPAN/
2160
2161 =back
2162
2163 =head2 Asia
2164
2165 =over 4
2166
2167 =item China
2168
2169                       http://cpan.linuxforum.net/
2170                       http://cpan.shellhung.org/
2171                       ftp://ftp.shellhung.org/pub/CPAN
2172                       ftp://mirrors.hknet.com/CPAN
2173
2174 =item Indonesia
2175
2176                       http://mirrors.tf.itb.ac.id/cpan/
2177                       http://cpan.cbn.net.id/
2178                       ftp://ftp.cbn.net.id/mirror/CPAN
2179
2180 =item Israel
2181
2182                       ftp://ftp.iglu.org.il/pub/CPAN/
2183                       http://cpan.lerner.co.il/
2184                       http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
2185                       ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
2186
2187 =item Japan
2188
2189                       ftp://ftp.u-aizu.ac.jp/pub/CPAN
2190                       ftp://ftp.kddlabs.co.jp/CPAN/
2191                       ftp://ftp.ayamura.org/pub/CPAN/
2192                       ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
2193                       http://ftp.cpan.jp/
2194                       ftp://ftp.cpan.jp/CPAN/
2195                       ftp://ftp.dti.ad.jp/pub/lang/CPAN/
2196                       ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
2197
2198 =item Malaysia
2199
2200                       http://cpan.MyBSD.org.my
2201                       http://mirror.leafbug.org/pub/CPAN
2202                       http://ossig.mncc.com.my/mirror/pub/CPAN
2203
2204 =item Russian Federation
2205
2206                       http://cpan.tomsk.ru
2207                       ftp://cpan.tomsk.ru/
2208
2209 =item Saudi Arabia
2210
2211                       ftp://ftp.isu.net.sa/pub/CPAN/
2212
2213 =item Singapore
2214
2215                       http://CPAN.en.com.sg/
2216                       ftp://cpan.en.com.sg/
2217                       http://mirror.averse.net/pub/CPAN
2218                       ftp://mirror.averse.net/pub/CPAN
2219                       http://cpan.oss.eznetsols.org
2220                       ftp://ftp.oss.eznetsols.org/cpan
2221
2222 =item South Korea
2223
2224                       http://CPAN.bora.net/
2225                       ftp://ftp.bora.net/pub/CPAN/
2226                       http://mirror.kr.FreeBSD.org/CPAN
2227                       ftp://ftp.kr.FreeBSD.org/pub/CPAN
2228
2229 =item Taiwan
2230
2231                       ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
2232                       http://cpan.cdpa.nsysu.edu.tw/
2233                       ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
2234                       http://ftp.isu.edu.tw/pub/CPAN
2235                       ftp://ftp.isu.edu.tw/pub/CPAN
2236                       ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
2237                       http://ftp.tku.edu.tw/pub/CPAN/
2238                       ftp://ftp.tku.edu.tw/pub/CPAN/
2239
2240 =item Thailand
2241
2242                       ftp://ftp.loxinfo.co.th/pub/cpan/
2243                       ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
2244
2245 =back
2246
2247 =head2 Central America
2248
2249 =over 4
2250
2251 =item Costa Rica
2252
2253                       http://ftp.ucr.ac.cr/Unix/CPAN/
2254                       ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
2255
2256 =back
2257
2258 =head2 Europe
2259
2260 =over 4
2261
2262 =item Austria
2263
2264                       http://cpan.inode.at/
2265                       ftp://cpan.inode.at
2266                       ftp://ftp.tuwien.ac.at/pub/CPAN/
2267
2268 =item Belgium
2269
2270                       http://ftp.easynet.be/pub/CPAN/
2271                       ftp://ftp.easynet.be/pub/CPAN/
2272                       http://cpan.skynet.be
2273                       ftp://ftp.cpan.skynet.be/pub/CPAN
2274                       ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
2275
2276 =item Bosnia and Herzegovina
2277
2278                       http://cpan.blic.net/
2279
2280 =item Bulgaria
2281
2282                       http://cpan.online.bg
2283                       ftp://cpan.online.bg/cpan
2284                       http://cpan.zadnik.org
2285                       ftp://ftp.zadnik.org/mirrors/CPAN/
2286                       http://cpan.lirex.net/
2287                       ftp://ftp.lirex.net/pub/mirrors/CPAN
2288
2289 =item Croatia
2290
2291                       http://ftp.linux.hr/pub/CPAN/
2292                       ftp://ftp.linux.hr/pub/CPAN/
2293
2294 =item Czech Republic
2295
2296                       ftp://ftp.fi.muni.cz/pub/CPAN/
2297                       ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
2298
2299 =item Denmark
2300
2301                       http://mirrors.sunsite.dk/cpan/
2302                       ftp://sunsite.dk/mirrors/cpan/
2303                       http://cpan.cybercity.dk
2304                       http://www.cpan.dk/CPAN/
2305                       ftp://www.cpan.dk/ftp.cpan.org/CPAN/
2306
2307 =item Estonia
2308
2309                       ftp://ftp.ut.ee/pub/languages/perl/CPAN/
2310
2311 =item Finland
2312
2313                       ftp://ftp.funet.fi/pub/languages/perl/CPAN/
2314                       http://mirror.eunet.fi/CPAN
2315
2316 =item France
2317
2318                       http://www.enstimac.fr/Perl/CPAN
2319                       http://ftp.u-paris10.fr/perl/CPAN
2320                       ftp://ftp.u-paris10.fr/perl/CPAN
2321                       http://cpan.mirrors.easynet.fr/
2322                       ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
2323                       ftp://ftp.club-internet.fr/pub/perl/CPAN/
2324                       http://fr.cpan.org/
2325                       ftp://ftp.lip6.fr/pub/perl/CPAN/
2326                       ftp://ftp.oleane.net/pub/mirrors/CPAN/
2327                       ftp://ftp.pasteur.fr/pub/computing/CPAN/
2328                       http://mir2.ovh.net/ftp.cpan.org
2329                       ftp://mir1.ovh.net/ftp.cpan.org
2330                       http://ftp.crihan.fr/mirrors/ftp.cpan.org/
2331                       ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
2332                       http://ftp.u-strasbg.fr/CPAN
2333                       ftp://ftp.u-strasbg.fr/CPAN
2334                       ftp://cpan.cict.fr/pub/CPAN/
2335                       ftp://ftp.uvsq.fr/pub/perl/CPAN/
2336
2337 =item Germany
2338
2339                       ftp://ftp.rub.de/pub/CPAN/
2340                       ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
2341                       ftp://ftp.uni-erlangen.de/pub/source/CPAN/
2342                       ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
2343                       http://pandemonium.tiscali.de/pub/CPAN/
2344                       ftp://pandemonium.tiscali.de/pub/CPAN/
2345                       http://ftp.gwdg.de/pub/languages/perl/CPAN/
2346                       ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
2347                       ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
2348                       ftp://ftp.leo.org/pub/CPAN/
2349                       http://cpan.noris.de/
2350                       ftp://cpan.noris.de/pub/CPAN/
2351                       ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
2352                       ftp://ftp.gmd.de/mirrors/CPAN/
2353
2354 =item Greece
2355
2356                       ftp://ftp.acn.gr/pub/lang/perl
2357                       ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
2358                       ftp://ftp.ntua.gr/pub/lang/perl/
2359
2360 =item Hungary
2361
2362                       http://ftp.kfki.hu/packages/perl/CPAN/
2363                       ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
2364
2365 =item Iceland
2366
2367                       http://ftp.rhnet.is/pub/CPAN/
2368                       ftp://ftp.rhnet.is/pub/CPAN/
2369
2370 =item Ireland
2371
2372                       http://cpan.indigo.ie/
2373                       ftp://cpan.indigo.ie/pub/CPAN/
2374                       http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2375                       ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2376                       http://sunsite.compapp.dcu.ie/pub/perl/
2377                       ftp://sunsite.compapp.dcu.ie/pub/perl/
2378
2379 =item Italy
2380
2381                       http://cpan.nettuno.it/
2382                       http://gusp.dyndns.org/CPAN/
2383                       ftp://gusp.dyndns.org/pub/CPAN
2384                       http://softcity.iol.it/cpan
2385                       ftp://softcity.iol.it/pub/cpan
2386                       ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
2387                       ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
2388                       ftp://cis.uniRoma2.it/CPAN/
2389                       ftp://ftp.edisontel.it/pub/CPAN_Mirror/
2390                       http://cpan.flashnet.it/
2391                       ftp://ftp.flashnet.it/pub/CPAN/
2392
2393 =item Latvia
2394
2395                       http://kvin.lv/pub/CPAN/
2396
2397 =item Lithuania
2398
2399                       ftp://ftp.unix.lt/pub/CPAN/
2400
2401 =item Netherlands
2402
2403                       ftp://download.xs4all.nl/pub/mirror/CPAN/
2404                       ftp://ftp.nl.uu.net/pub/CPAN/
2405                       ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
2406                       http://cpan.cybercomm.nl/
2407                       ftp://mirror.cybercomm.nl/pub/CPAN
2408                       ftp://mirror.vuurwerk.nl/pub/CPAN/
2409                       ftp://ftp.cpan.nl/pub/CPAN/
2410                       http://ftp.easynet.nl/mirror/CPAN
2411                       ftp://ftp.easynet.nl/mirror/CPAN
2412                       http://archive.cs.uu.nl/mirror/CPAN/
2413                       ftp://ftp.cs.uu.nl/mirror/CPAN/
2414
2415 =item Norway
2416
2417                       ftp://ftp.uninett.no/pub/languages/perl/CPAN
2418                       ftp://ftp.uit.no/pub/languages/perl/cpan/
2419
2420 =item Poland
2421
2422                       ftp://ftp.mega.net.pl/CPAN
2423                       ftp://ftp.man.torun.pl/pub/doc/CPAN/
2424                       ftp://sunsite.icm.edu.pl/pub/CPAN/
2425
2426 =item Portugal
2427
2428                       ftp://ftp.ua.pt/pub/CPAN/
2429                       ftp://perl.di.uminho.pt/pub/CPAN/
2430                       http://cpan.dei.uc.pt/
2431                       ftp://ftp.dei.uc.pt/pub/CPAN
2432                       ftp://ftp.nfsi.pt/pub/CPAN
2433                       http://ftp.linux.pt/pub/mirrors/CPAN
2434                       ftp://ftp.linux.pt/pub/mirrors/CPAN
2435                       http://cpan.ip.pt/
2436                       ftp://cpan.ip.pt/pub/cpan/
2437                       http://cpan.telepac.pt/
2438                       ftp://ftp.telepac.pt/pub/cpan/
2439
2440 =item Romania
2441
2442                       ftp://ftp.bio-net.ro/pub/CPAN
2443                       ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
2444                       ftp://ftp.lug.ro/CPAN
2445                       ftp://ftp.roedu.net/pub/CPAN/
2446                       ftp://ftp.dntis.ro/pub/cpan/
2447                       ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
2448                       http://cpan.ambra.ro/
2449                       ftp://ftp.ambra.ro/pub/CPAN
2450                       ftp://ftp.dnttm.ro/pub/CPAN/
2451                       ftp://ftp.lasting.ro/pub/CPAN
2452                       ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
2453
2454 =item Russia
2455
2456                       ftp://ftp.chg.ru/pub/lang/perl/CPAN/
2457                       http://cpan.rinet.ru/
2458                       ftp://cpan.rinet.ru/pub/mirror/CPAN/
2459                       ftp://ftp.aha.ru/pub/CPAN/
2460                       ftp://ftp.corbina.ru/pub/CPAN/
2461                       http://cpan.sai.msu.ru/
2462                       ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
2463
2464 =item Slovakia
2465
2466                       ftp://ftp.cvt.stuba.sk/pub/CPAN/
2467
2468 =item Slovenia
2469
2470                       ftp://ftp.arnes.si/software/perl/CPAN/
2471
2472 =item Spain
2473
2474                       http://cpan.imasd.elmundo.es/
2475                       ftp://ftp.rediris.es/mirror/CPAN/
2476                       ftp://ftp.ri.telefonica-data.net/CPAN
2477                       ftp://ftp.etse.urv.es/pub/perl/
2478
2479 =item Sweden
2480
2481                       http://ftp.du.se/CPAN/
2482                       ftp://ftp.du.se/pub/CPAN/
2483                       http://mirror.dataphone.se/CPAN
2484                       ftp://mirror.dataphone.se/pub/CPAN
2485                       ftp://ftp.sunet.se/pub/lang/perl/CPAN/
2486
2487 =item Switzerland
2488
2489                       http://cpan.mirror.solnet.ch/
2490                       ftp://ftp.solnet.ch/mirror/CPAN/
2491                       ftp://ftp.danyk.ch/CPAN/
2492                       ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
2493
2494 =item Turkey
2495
2496                       http://ftp.ulak.net.tr/perl/CPAN/
2497                       ftp://ftp.ulak.net.tr/perl/CPAN
2498                       ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
2499
2500 =item Ukraine
2501
2502                       http://cpan.org.ua/
2503                       ftp://cpan.org.ua/
2504                       ftp://ftp.perl.org.ua/pub/CPAN/
2505                       http://no-more.kiev.ua/CPAN/
2506                       ftp://no-more.kiev.ua/pub/CPAN/
2507
2508 =item United Kingdom
2509
2510                       http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
2511                       ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
2512                       http://cpan.teleglobe.net/
2513                       ftp://cpan.teleglobe.net/pub/CPAN
2514                       http://cpan.mirror.anlx.net/
2515                       ftp://ftp.mirror.anlx.net/CPAN/
2516                       http://cpan.etla.org/
2517                       ftp://cpan.etla.org/pub/CPAN
2518                       ftp://ftp.demon.co.uk/pub/CPAN/
2519                       http://cpan.m.flirble.org/
2520                       ftp://ftp.flirble.org/pub/languages/perl/CPAN/
2521                       ftp://ftp.plig.org/pub/CPAN/
2522                       http://cpan.hambule.co.uk/
2523                       http://cpan.mirrors.clockerz.net/
2524                       ftp://ftp.clockerz.net/pub/CPAN/
2525                       ftp://usit.shef.ac.uk/pub/packages/CPAN/
2526
2527 =back
2528
2529 =head2 North America
2530
2531 =over 4
2532
2533 =item Canada
2534
2535 =over 8
2536
2537 =item Alberta
2538
2539                       http://cpan.sunsite.ualberta.ca/
2540                       ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
2541
2542 =item Manitoba
2543
2544                       http://theoryx5.uwinnipeg.ca/pub/CPAN/
2545                       ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
2546
2547 =item Nova Scotia
2548
2549                       ftp://cpan.chebucto.ns.ca/pub/CPAN/
2550
2551 =item Ontario
2552
2553                       ftp://ftp.nrc.ca/pub/CPAN/
2554
2555 =back
2556
2557 =item Mexico
2558
2559                       http://cpan.azc.uam.mx
2560                       ftp://cpan.azc.uam.mx/mirrors/CPAN
2561                       http://www.cpan.unam.mx/
2562                       ftp://ftp.unam.mx/pub/CPAN
2563                       http://www.msg.com.mx/CPAN/
2564                       ftp://ftp.msg.com.mx/pub/CPAN/
2565
2566 =item United States
2567
2568 =over 8
2569
2570 =item Alabama
2571
2572                       http://mirror.hiwaay.net/CPAN/
2573                       ftp://mirror.hiwaay.net/CPAN/
2574
2575 =item California
2576
2577                       http://cpan.develooper.com/
2578                       http://www.cpan.org/
2579                       ftp://cpan.valueclick.com/pub/CPAN/
2580                       http://www.mednor.net/ftp/pub/mirrors/CPAN/
2581                       ftp://ftp.mednor.net/pub/mirrors/CPAN/
2582                       http://mirrors.gossamer-threads.com/CPAN
2583                       ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
2584                       http://mirrors.kernel.org/cpan/
2585                       ftp://mirrors.kernel.org/pub/CPAN
2586                       http://cpan-sj.viaverio.com/
2587                       ftp://cpan-sj.viaverio.com/pub/CPAN/
2588                       http://cpan.digisle.net/
2589                       ftp://cpan.digisle.net/pub/CPAN
2590                       http://www.perl.com/CPAN/
2591                       http://www.uberlan.net/CPAN
2592
2593 =item Colorado
2594
2595                       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
2596                       http://cpan.four10.com
2597
2598 =item Delaware
2599
2600                       http://ftp.lug.udel.edu/pub/CPAN
2601                       ftp://ftp.lug.udel.edu/pub/CPAN
2602
2603 =item District of Columbia
2604
2605                       ftp://ftp.dc.aleron.net/pub/CPAN/
2606
2607 =item Florida
2608
2609                       ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
2610                       http://mirror.csit.fsu.edu/pub/CPAN/
2611                       ftp://mirror.csit.fsu.edu/pub/CPAN/
2612                       http://cpan.mirrors.nks.net/
2613
2614 =item Indiana
2615
2616                       ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
2617                       http://cpan.netnitco.net/
2618                       ftp://cpan.netnitco.net/pub/mirrors/CPAN/
2619                       http://archive.progeny.com/CPAN/
2620                       ftp://archive.progeny.com/CPAN/
2621                       http://fx.saintjoe.edu/pub/CPAN
2622                       ftp://ftp.saintjoe.edu/pub/CPAN
2623                       http://csociety-ftp.ecn.purdue.edu/pub/CPAN
2624                       ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
2625
2626 =item Kentucky
2627
2628                       http://cpan.uky.edu/
2629                       ftp://cpan.uky.edu/pub/CPAN/
2630                       http://slugsite.louisville.edu/cpan
2631                       ftp://slugsite.louisville.edu/CPAN
2632
2633 =item Massachusetts
2634
2635                       http://mirrors.towardex.com/CPAN
2636                       ftp://mirrors.towardex.com/pub/CPAN
2637                       ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
2638
2639 =item Michigan
2640
2641                       ftp://cpan.cse.msu.edu/
2642                       http://cpan.calvin.edu/pub/CPAN
2643                       ftp://cpan.calvin.edu/pub/CPAN
2644
2645 =item Nevada
2646
2647                       http://www.oss.redundant.com/pub/CPAN
2648                       ftp://www.oss.redundant.com/pub/CPAN
2649
2650 =item New Jersey
2651
2652                       http://ftp.cpanel.net/pub/CPAN/
2653                       ftp://ftp.cpanel.net/pub/CPAN/
2654                       http://cpan.teleglobe.net/
2655                       ftp://cpan.teleglobe.net/pub/CPAN
2656
2657 =item New York
2658
2659                       http://cpan.belfry.net/
2660                       http://cpan.erlbaum.net/
2661                       ftp://cpan.erlbaum.net/
2662                       http://cpan.thepirtgroup.com/
2663                       ftp://cpan.thepirtgroup.com/
2664                       ftp://ftp.stealth.net/pub/CPAN/
2665                       http://www.rge.com/pub/languages/perl/
2666                       ftp://ftp.rge.com/pub/languages/perl/
2667
2668 =item North Carolina
2669
2670                       http://www.ibiblio.org/pub/languages/perl/CPAN
2671                       ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
2672                       ftp://ftp.duke.edu/pub/perl/
2673                       ftp://ftp.ncsu.edu/pub/mirror/CPAN/
2674
2675 =item Oklahoma
2676
2677                       ftp://ftp.ou.edu/mirrors/CPAN/
2678
2679 =item Oregon
2680
2681                       ftp://ftp.orst.edu/pub/CPAN
2682
2683 =item Pennsylvania
2684
2685                       http://ftp.epix.net/CPAN/
2686                       ftp://ftp.epix.net/pub/languages/perl/
2687                       http://mirrors.phenominet.com/pub/CPAN/
2688                       ftp://mirrors.phenominet.com/pub/CPAN/
2689                       http://cpan.pair.com/
2690                       ftp://cpan.pair.com/pub/CPAN/
2691                       ftp://carroll.cac.psu.edu/pub/CPAN/
2692
2693 =item Tennessee
2694
2695                       ftp://ftp.sunsite.utk.edu/pub/CPAN/
2696
2697 =item Texas
2698
2699                       http://ftp.sedl.org/pub/mirrors/CPAN/
2700                       http://www.binarycode.org/cpan
2701                       ftp://mirror.telentente.com/pub/CPAN
2702                       http://mirrors.theonlinerecordstore.com/CPAN
2703
2704 =item Utah
2705
2706                       ftp://mirror.xmission.com/CPAN/
2707
2708 =item Virginia
2709
2710                       http://cpan-du.viaverio.com/
2711                       ftp://cpan-du.viaverio.com/pub/CPAN/
2712                       http://mirrors.rcn.net/pub/lang/CPAN/
2713                       ftp://mirrors.rcn.net/pub/lang/CPAN/
2714                       http://perl.secsup.org/
2715                       ftp://perl.secsup.org/pub/perl/
2716                       http://noc.cvaix.com/mirrors/CPAN/
2717
2718 =item Washington
2719
2720                       http://cpan.llarian.net/
2721                       ftp://cpan.llarian.net/pub/CPAN/
2722                       http://cpan.mirrorcentral.com/
2723                       ftp://ftp.mirrorcentral.com/pub/CPAN/
2724                       ftp://ftp-mirror.internap.com/pub/CPAN/
2725
2726 =item Wisconsin
2727
2728                       http://mirror.sit.wisc.edu/pub/CPAN/
2729                       ftp://mirror.sit.wisc.edu/pub/CPAN/
2730                       http://mirror.aphix.com/CPAN
2731                       ftp://mirror.aphix.com/pub/CPAN
2732
2733 =back
2734
2735 =back
2736
2737 =head2 Oceania
2738
2739 =over 4
2740
2741 =item Australia
2742
2743                       http://ftp.planetmirror.com/pub/CPAN/
2744                       ftp://ftp.planetmirror.com/pub/CPAN/
2745                       ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
2746                       ftp://cpan.topend.com.au/pub/CPAN/
2747                       http://cpan.mirrors.ilisys.com.au
2748
2749 =item New Zealand
2750
2751                       ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
2752
2753 =item United States
2754
2755                       http://aniani.ifa.hawaii.edu/CPAN/
2756                       ftp://aniani.ifa.hawaii.edu/CPAN/
2757
2758 =back
2759
2760 =head2 South America
2761
2762 =over 4
2763
2764 =item Argentina
2765
2766                       ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
2767                       http://www.linux.org.ar/mirrors/cpan
2768                       ftp://ftp.linux.org.ar/mirrors/cpan
2769
2770 =item Brazil
2771
2772                       ftp://cpan.pop-mg.com.br/pub/CPAN/
2773                       ftp://ftp.matrix.com.br/pub/perl/CPAN/
2774                       http://cpan.hostsul.com.br/
2775                       ftp://cpan.hostsul.com.br/
2776
2777 =item Chile
2778
2779                       http://cpan.netglobalis.net/
2780                       ftp://cpan.netglobalis.net/pub/CPAN/
2781
2782 =back
2783
2784 =head2 RSYNC Mirrors
2785
2786                       www.linux.org.ar::cpan
2787                       theoryx5.uwinnipeg.ca::CPAN
2788                       ftp.shellhung.org::CPAN
2789                       rsync.nic.funet.fi::CPAN
2790                       ftp.u-paris10.fr::CPAN
2791                       mir1.ovh.net::CPAN
2792                       rsync://ftp.crihan.fr::CPAN
2793                       ftp.gwdg.de::FTP/languages/perl/CPAN/
2794                       ftp.leo.org::CPAN
2795                       ftp.cbn.net.id::CPAN
2796                       rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2797                       ftp.iglu.org.il::CPAN
2798                       gusp.dyndns.org::cpan
2799                       ftp.kddlabs.co.jp::cpan
2800                       ftp.ayamura.org::pub/CPAN/
2801                       mirror.leafbug.org::CPAN
2802                       rsync.en.com.sg::CPAN
2803                       mirror.averse.net::cpan
2804                       rsync.oss.eznetsols.org
2805                       ftp.kr.FreeBSD.org::CPAN
2806                       ftp.solnet.ch::CPAN
2807                       cpan.cdpa.nsysu.edu.tw::CPAN
2808                       cpan.teleglobe.net::CPAN
2809                       rsync://rsync.mirror.anlx.net::CPAN
2810                       ftp.sedl.org::cpan
2811                       ibiblio.org::CPAN
2812                       cpan-du.viaverio.com::CPAN
2813                       aniani.ifa.hawaii.edu::CPAN
2814                       archive.progeny.com::CPAN
2815                       rsync://slugsite.louisville.edu::CPAN
2816                       mirror.aphix.com::CPAN
2817                       cpan.teleglobe.net::CPAN
2818                       ftp.lug.udel.edu::cpan
2819                       mirrors.kernel.org::mirrors/CPAN
2820                       mirrors.phenominet.com::CPAN
2821                       cpan.pair.com::CPAN
2822                       cpan-sj.viaverio.com::CPAN
2823                       mirror.csit.fsu.edu::CPAN
2824                       csociety-ftp.ecn.purdue.edu::CPAN
2825
2826 For an up-to-date listing of CPAN sites,
2827 see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
2828
2829 =head1 Modules: Creation, Use, and Abuse
2830
2831 (The following section is borrowed directly from Tim Bunce's modules
2832 file, available at your nearest CPAN site.)
2833
2834 Perl implements a class using a package, but the presence of a
2835 package doesn't imply the presence of a class.  A package is just a
2836 namespace.  A class is a package that provides subroutines that can be
2837 used as methods.  A method is just a subroutine that expects, as its
2838 first argument, either the name of a package (for "static" methods),
2839 or a reference to something (for "virtual" methods).
2840
2841 A module is a file that (by convention) provides a class of the same
2842 name (sans the .pm), plus an import method in that class that can be
2843 called to fetch exported symbols.  This module may implement some of
2844 its methods by loading dynamic C or C++ objects, but that should be
2845 totally transparent to the user of the module.  Likewise, the module
2846 might set up an AUTOLOAD function to slurp in subroutine definitions on
2847 demand, but this is also transparent.  Only the F<.pm> file is required to
2848 exist.  See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
2849 the AUTOLOAD mechanism.
2850
2851 =head2 Guidelines for Module Creation
2852
2853 =over 4
2854
2855 =item  *
2856
2857 Do similar modules already exist in some form?
2858
2859 If so, please try to reuse the existing modules either in whole or
2860 by inheriting useful features into a new class.  If this is not
2861 practical try to get together with the module authors to work on
2862 extending or enhancing the functionality of the existing modules.
2863 A perfect example is the plethora of packages in perl4 for dealing
2864 with command line options.
2865
2866 If you are writing a module to expand an already existing set of
2867 modules, please coordinate with the author of the package.  It
2868 helps if you follow the same naming scheme and module interaction
2869 scheme as the original author.
2870
2871 =item  *
2872
2873 Try to design the new module to be easy to extend and reuse.
2874
2875 Try to C<use warnings;> (or C<use warnings qw(...);>).
2876 Remember that you can add C<no warnings qw(...);> to individual blocks
2877 of code that need less warnings.
2878
2879 Use blessed references.  Use the two argument form of bless to bless
2880 into the class name given as the first parameter of the constructor,
2881 e.g.,:
2882
2883  sub new {
2884      my $class = shift;
2885      return bless {}, $class;
2886  }
2887
2888 or even this if you'd like it to be used as either a static
2889 or a virtual method.
2890
2891  sub new {
2892      my $self  = shift;
2893      my $class = ref($self) || $self;
2894      return bless {}, $class;
2895  }
2896
2897 Pass arrays as references so more parameters can be added later
2898 (it's also faster).  Convert functions into methods where
2899 appropriate.  Split large methods into smaller more flexible ones.
2900 Inherit methods from other modules if appropriate.
2901
2902 Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
2903 Generally you can delete the C<eq 'FOO'> part with no harm at all.
2904 Let the objects look after themselves! Generally, avoid hard-wired
2905 class names as far as possible.
2906
2907 Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
2908 C<< $r->func() >> would work (see L<perlbot> for more details).
2909
2910 Use autosplit so little used or newly added functions won't be a
2911 burden to programs that don't use them. Add test functions to
2912 the module after __END__ either using AutoSplit or by saying:
2913
2914  eval join('',<main::DATA>) || die $@ unless caller();
2915
2916 Does your module pass the 'empty subclass' test? If you say
2917 C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
2918 to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
2919 does your application still work if you change:  C<< $obj = YOURCLASS->new(); >>
2920 into: C<< $obj = SUBCLASS->new(); >> ?
2921
2922 Avoid keeping any state information in your packages. It makes it
2923 difficult for multiple other packages to use yours. Keep state
2924 information in objects.
2925
2926 Always use B<-w>.
2927
2928 Try to C<use strict;> (or C<use strict qw(...);>).
2929 Remember that you can add C<no strict qw(...);> to individual blocks
2930 of code that need less strictness.
2931
2932 Always use B<-w>.
2933
2934 Follow the guidelines in the perlstyle(1) manual.
2935
2936 Always use B<-w>.
2937
2938 =item  *
2939
2940 Some simple style guidelines
2941
2942 The perlstyle manual supplied with Perl has many helpful points.
2943
2944 Coding style is a matter of personal taste. Many people evolve their
2945 style over several years as they learn what helps them write and
2946 maintain good code.  Here's one set of assorted suggestions that
2947 seem to be widely used by experienced developers:
2948
2949 Use underscores to separate words.  It is generally easier to read
2950 $var_names_like_this than $VarNamesLikeThis, especially for
2951 non-native speakers of English. It's also a simple rule that works
2952 consistently with VAR_NAMES_LIKE_THIS.
2953
2954 Package/Module names are an exception to this rule. Perl informally
2955 reserves lowercase module names for 'pragma' modules like integer
2956 and strict. Other modules normally begin with a capital letter and
2957 use mixed case with no underscores (need to be short and portable).
2958
2959 You may find it helpful to use letter case to indicate the scope
2960 or nature of a variable. For example:
2961
2962  $ALL_CAPS_HERE   constants only (beware clashes with Perl vars)
2963  $Some_Caps_Here  package-wide global/static
2964  $no_caps_here    function scope my() or local() variables
2965
2966 Function and method names seem to work best as all lowercase.
2967 e.g., C<< $obj->as_string() >>.
2968
2969 You can use a leading underscore to indicate that a variable or
2970 function should not be used outside the package that defined it.
2971
2972 =item  *
2973
2974 Select what to export.
2975
2976 Do NOT export method names!
2977
2978 Do NOT export anything else by default without a good reason!
2979
2980 Exports pollute the namespace of the module user.  If you must
2981 export try to use @EXPORT_OK in preference to @EXPORT and avoid
2982 short or common names to reduce the risk of name clashes.
2983
2984 Generally anything not exported is still accessible from outside the
2985 module using the ModuleName::item_name (or C<< $blessed_ref->method >>)
2986 syntax.  By convention you can use a leading underscore on names to
2987 indicate informally that they are 'internal' and not for public use.
2988
2989 (It is actually possible to get private functions by saying:
2990 C<my $subref = sub { ... };  &$subref;>.  But there's no way to call that
2991 directly as a method, because a method must have a name in the symbol
2992 table.)
2993
2994 As a general rule, if the module is trying to be object oriented
2995 then export nothing. If it's just a collection of functions then
2996 @EXPORT_OK anything but use @EXPORT with caution.
2997
2998 =item  *
2999
3000 Select a name for the module.
3001
3002 This name should be as descriptive, accurate, and complete as
3003 possible.  Avoid any risk of ambiguity. Always try to use two or
3004 more whole words.  Generally the name should reflect what is special
3005 about what the module does rather than how it does it.  Please use
3006 nested module names to group informally or categorize a module.
3007 There should be a very good reason for a module not to have a nested name.
3008 Module names should begin with a capital letter.
3009
3010 Having 57 modules all called Sort will not make life easy for anyone
3011 (though having 23 called Sort::Quick is only marginally better :-).
3012 Imagine someone trying to install your module alongside many others.
3013 If in any doubt ask for suggestions in comp.lang.perl.misc.
3014
3015 If you are developing a suite of related modules/classes it's good
3016 practice to use nested classes with a common prefix as this will
3017 avoid namespace clashes. For example: Xyz::Control, Xyz::View,
3018 Xyz::Model etc. Use the modules in this list as a naming guide.
3019
3020 If adding a new module to a set, follow the original author's
3021 standards for naming modules and the interface to methods in
3022 those modules.
3023
3024 If developing modules for private internal or project specific use,
3025 that will never be released to the public, then you should ensure
3026 that their names will not clash with any future public module. You
3027 can do this either by using the reserved Local::* category or by
3028 using a category name that includes an underscore like Foo_Corp::*.
3029
3030 To be portable each component of a module name should be limited to
3031 11 characters. If it might be used on MS-DOS then try to ensure each is
3032 unique in the first 8 characters. Nested modules make this easier.
3033
3034 =item  *
3035
3036 Have you got it right?
3037
3038 How do you know that you've made the right decisions? Have you
3039 picked an interface design that will cause problems later? Have
3040 you picked the most appropriate name? Do you have any questions?
3041
3042 The best way to know for sure, and pick up many helpful suggestions,
3043 is to ask someone who knows. Comp.lang.perl.misc is read by just about
3044 all the people who develop modules and it's the best place to ask.
3045
3046 All you need to do is post a short summary of the module, its
3047 purpose and interfaces. A few lines on each of the main methods is
3048 probably enough. (If you post the whole module it might be ignored
3049 by busy people - generally the very people you want to read it!)
3050
3051 Don't worry about posting if you can't say when the module will be
3052 ready - just say so in the message. It might be worth inviting
3053 others to help you, they may be able to complete it for you!
3054
3055 =item  *
3056
3057 README and other Additional Files.
3058
3059 It's well known that software developers usually fully document the
3060 software they write. If, however, the world is in urgent need of
3061 your software and there is not enough time to write the full
3062 documentation please at least provide a README file containing:
3063
3064 =over 10
3065
3066 =item *
3067
3068 A description of the module/package/extension etc.
3069
3070 =item *
3071
3072 A copyright notice - see below.
3073
3074 =item *
3075
3076 Prerequisites - what else you may need to have.
3077
3078 =item *
3079
3080 How to build it - possible changes to Makefile.PL etc.
3081
3082 =item *
3083
3084 How to install it.
3085
3086 =item *
3087
3088 Recent changes in this release, especially incompatibilities
3089
3090 =item *
3091
3092 Changes / enhancements you plan to make in the future.
3093
3094 =back
3095
3096 If the README file seems to be getting too large you may wish to
3097 split out some of the sections into separate files: INSTALL,
3098 Copying, ToDo etc.
3099
3100 =over 4
3101
3102 =item *
3103
3104 Adding a Copyright Notice.
3105
3106 How you choose to license your work is a personal decision.
3107 The general mechanism is to assert your Copyright and then make
3108 a declaration of how others may copy/use/modify your work.
3109
3110 Perl, for example, is supplied with two types of licence: The GNU GPL
3111 and The Artistic Licence (see the files README, Copying, and Artistic,
3112 or L<perlgpl> and L<perlartistic>).  Larry has good reasons for NOT
3113 just using the GNU GPL.
3114
3115 My personal recommendation, out of respect for Larry, Perl, and the
3116 Perl community at large is to state something simply like:
3117
3118  Copyright (c) 1995 Your Name. All rights reserved.
3119  This program is free software; you can redistribute it and/or
3120  modify it under the same terms as Perl itself.
3121
3122 This statement should at least appear in the README file. You may
3123 also wish to include it in a Copying file and your source files.
3124 Remember to include the other words in addition to the Copyright.
3125
3126 =item  *
3127
3128 Give the module a version/issue/release number.
3129
3130 To be fully compatible with the Exporter and MakeMaker modules you
3131 should store your module's version number in a non-my package
3132 variable called $VERSION.  This should be a floating point
3133 number with at least two digits after the decimal (i.e., hundredths,
3134 e.g, C<$VERSION = "0.01">).  Don't use a "1.3.2" style version.
3135 See L<Exporter> for details.
3136
3137 It may be handy to add a function or method to retrieve the number.
3138 Use the number in announcements and archive file names when
3139 releasing the module (ModuleName-1.02.tar.Z).
3140 See perldoc ExtUtils::MakeMaker.pm for details.
3141
3142 =item  *
3143
3144 How to release and distribute a module.
3145
3146 It's good idea to post an announcement of the availability of your
3147 module (or the module itself if small) to the comp.lang.perl.announce
3148 Usenet newsgroup.  This will at least ensure very wide once-off
3149 distribution.
3150
3151 If possible, register the module with CPAN.  You should
3152 include details of its location in your announcement.
3153
3154 Some notes about ftp archives: Please use a long descriptive file
3155 name that includes the version number. Most incoming directories
3156 will not be readable/listable, i.e., you won't be able to see your
3157 file after uploading it. Remember to send your email notification
3158 message as soon as possible after uploading else your file may get
3159 deleted automatically. Allow time for the file to be processed
3160 and/or check the file has been processed before announcing its
3161 location.
3162
3163 FTP Archives for Perl Modules:
3164
3165 Follow the instructions and links on:
3166
3167    http://www.cpan.org/modules/00modlist.long.html
3168    http://www.cpan.org/modules/04pause.html
3169
3170 or upload to one of these sites:
3171
3172    https://pause.kbx.de/pause/
3173    http://pause.perl.org/pause/
3174
3175 and notify <modules@perl.org>.
3176
3177 By using the WWW interface you can ask the Upload Server to mirror
3178 your modules from your ftp or WWW site into your own directory on
3179 CPAN!
3180
3181 Please remember to send me an updated entry for the Module list!
3182
3183 =item  *
3184
3185 Take care when changing a released module.
3186
3187 Always strive to remain compatible with previous released versions.
3188 Otherwise try to add a mechanism to revert to the
3189 old behavior if people rely on it.  Document incompatible changes.
3190
3191 =back
3192
3193 =back
3194
3195 =head2 Guidelines for Converting Perl 4 Library Scripts into Modules
3196
3197 =over 4
3198
3199 =item  *
3200
3201 There is no requirement to convert anything.
3202
3203 If it ain't broke, don't fix it! Perl 4 library scripts should
3204 continue to work with no problems. You may need to make some minor
3205 changes (like escaping non-array @'s in double quoted strings) but
3206 there is no need to convert a .pl file into a Module for just that.
3207
3208 =item  *
3209
3210 Consider the implications.
3211
3212 All Perl applications that make use of the script will need to
3213 be changed (slightly) if the script is converted into a module.  Is
3214 it worth it unless you plan to make other changes at the same time?
3215
3216 =item  *
3217
3218 Make the most of the opportunity.
3219
3220 If you are going to convert the script to a module you can use the
3221 opportunity to redesign the interface.  The guidelines for module
3222 creation above include many of the issues you should consider.
3223
3224 =item  *
3225
3226 The pl2pm utility will get you started.
3227
3228 This utility will read *.pl files (given as parameters) and write
3229 corresponding *.pm files. The pl2pm utilities does the following:
3230
3231 =over 10
3232
3233 =item *
3234
3235 Adds the standard Module prologue lines
3236
3237 =item *
3238
3239 Converts package specifiers from ' to ::
3240
3241 =item *
3242
3243 Converts die(...) to croak(...)
3244
3245 =item *
3246
3247 Several other minor changes
3248
3249 =back
3250
3251 Being a mechanical process pl2pm is not bullet proof. The converted
3252 code will need careful checking, especially any package statements.
3253 Don't delete the original .pl file till the new .pm one works!
3254
3255 =back
3256
3257 =head2 Guidelines for Reusing Application Code
3258
3259 =over 4
3260
3261 =item  *
3262
3263 Complete applications rarely belong in the Perl Module Library.
3264
3265 =item  *
3266
3267 Many applications contain some Perl code that could be reused.
3268
3269 Help save the world! Share your code in a form that makes it easy
3270 to reuse.
3271
3272 =item  *
3273
3274 Break-out the reusable code into one or more separate module files.
3275
3276 =item  *
3277
3278 Take the opportunity to reconsider and redesign the interfaces.
3279
3280 =item  *
3281
3282 In some cases the 'application' can then be reduced to a small
3283
3284 fragment of code built on top of the reusable modules. In these cases
3285 the application could invoked as:
3286
3287      % perl -e 'use Module::Name; method(@ARGV)' ...
3288 or
3289      % perl -mModule::Name ...    (in perl5.002 or higher)
3290
3291 =back
3292
3293 =head1 NOTE
3294
3295 Perl does not enforce private and public parts of its modules as you may
3296 have been used to in other languages like C++, Ada, or Modula-17.  Perl
3297 doesn't have an infatuation with enforced privacy.  It would prefer
3298 that you stayed out of its living room because you weren't invited, not
3299 because it has a shotgun.
3300
3301 The module and its user have a contract, part of which is common law,
3302 and part of which is "written".  Part of the common law contract is
3303 that a module doesn't pollute any namespace it wasn't asked to.  The
3304 written contract for the module (A.K.A. documentation) may make other
3305 provisions.  But then you know when you C<use RedefineTheWorld> that
3306 you're redefining the world and willing to take the consequences.