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