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