Integrate mainline.
[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 DESCRIPTION
9
10 =head1 THE PERL MODULE LIBRARY
11
12 Many modules are included the Perl distribution.  These are described
13 below, and all end in F<.pm>.  You may discover compiled library
14 file (usually ending in F<.so>) or small pieces of modules to be
15 autoloaded (ending in F<.al>); these were automatically generated
16 by the installation process.  You may also discover files in the
17 library directory that end in either F<.pl> or F<.ph>.  These are
18 old libraries supplied so that old programs that use them still
19 run.  The F<.pl> files will all eventually be converted into standard
20 modules, and the F<.ph> files made by B<h2ph> will probably end up
21 as extension modules made by B<h2xs>.  (Some F<.ph> values may
22 already be available through the POSIX, Errno, or Fcntl modules.)
23 The B<pl2pm> file in the distribution may help in your conversion,
24 but it's just a mechanical process and therefore far from bulletproof.
25
26 =head2 Pragmatic Modules
27
28 They work somewhat like compiler directives (pragmata) in that they
29 tend to affect the compilation of your program, and thus will usually
30 work well only when used within a C<use>, or C<no>.  Most of these
31 are lexically scoped, so an inner BLOCK may countermand them
32 by saying:
33
34     no integer;
35     no strict 'refs';
36     no warnings;
37
38 which lasts until the end of that BLOCK.
39
40 Some pragmas are lexically scoped--typically those that affect the
41 C<$^H> hints variable.  Others affect the current package instead,
42 like C<use vars> and C<use subs>, which allow you to predeclare a
43 variables or subroutines within a particular I<file> rather than
44 just a block.  Such declarations are effective for the entire file
45 for which they were declared.  You cannot rescind them with C<no
46 vars> or C<no subs>.
47
48 The following pragmas are defined (and have their own documentation).
49
50 =over 12
51
52 =item attributes
53
54 Get/set subroutine or variable attributes
55
56 =item attrs
57
58 Set/get attributes of a subroutine (deprecated)
59
60 =item autouse
61
62 Postpone load of modules until a function is used
63
64 =item base
65
66 Establish IS-A relationship with base class at compile time
67
68 =item bigint
69
70 Transparent big integer support for Perl
71
72 =item bignum
73
74 Transparent BigNumber support for Perl
75
76 =item bigrat
77
78 Transparent BigNumber/BigRational support for Perl
79
80 =item blib
81
82 Use MakeMaker's uninstalled version of a package
83
84 =item bytes
85
86 Force byte semantics rather than character semantics
87
88 =item charnames
89
90 Define character names for C<\N{named}> string literal escapes
91
92 =item constant
93
94 Declare constants
95
96 =item diagnostics
97
98 Perl compiler pragma to force verbose warning diagnostics
99
100 =item encoding
101
102 Allows you to write your script in non-ascii or non-utf8
103
104 =item fields
105
106 Compile-time class fields
107
108 =item filetest
109
110 Control the filetest permission operators
111
112 =item if
113
114 C<use> a Perl module if a condition holds
115
116 =item integer
117
118 Use integer arithmetic instead of floating point
119
120 =item less
121
122 Request less of something from the compiler
123
124 =item locale
125
126 Use and avoid POSIX locales for built-in operations
127
128 =item open
129
130 Set default PerlIO layers for input and output
131
132 =item ops
133
134 Restrict unsafe operations when compiling
135
136 =item overload
137
138 Package for overloading perl operations
139
140 =item re
141
142 Alter regular expression behaviour
143
144 =item sigtrap
145
146 Enable simple signal handling
147
148 =item sort
149
150 Control sort() behaviour
151
152 =item strict
153
154 Restrict unsafe constructs
155
156 =item subs
157
158 Predeclare sub names
159
160 =item threads
161
162 Perl extension allowing use of interpreter based threads from perl
163
164 =item utf8
165
166 Enable/disable UTF-8 (or UTF-EBCDIC) in source code
167
168 =item vars
169
170 Predeclare global variable names (obsolete)
171
172 =item vmsish
173
174 Control VMS-specific language features
175
176 =item warnings
177
178 Control optional warnings
179
180 =item warnings::register
181
182 Warnings import function
183
184 =back
185
186 =head2 Standard Modules
187
188 Standard, bundled modules are all expected to behave in a well-defined
189 manner with respect to namespace pollution because they use the
190 Exporter module.  See their own documentation for details.
191
192 =over 12
193
194 =item AnyDBM_File
195
196 Provide framework for multiple DBMs
197
198 =item Attribute::Handlers
199
200 Simpler definition of attribute handlers
201
202 =item AutoLoader
203
204 Load subroutines only on demand
205
206 =item AutoSplit
207
208 Split a package for autoloading
209
210 =item B
211
212 The Perl Compiler
213
214 =item B::Asmdata
215
216 Autogenerated data about Perl ops, used to generate bytecode
217
218 =item B::Assembler
219
220 Assemble Perl bytecode
221
222 =item B::Bblock
223
224 Walk basic blocks
225
226 =item B::Bytecode
227
228 Perl compiler's bytecode backend
229
230 =item B::C
231
232 Perl compiler's C backend
233
234 =item B::CC
235
236 Perl compiler's optimized C translation backend
237
238 =item B::Concise
239
240 Walk Perl syntax tree, printing concise info about ops
241
242 =item B::Debug
243
244 Walk Perl syntax tree, printing debug info about ops
245
246 =item B::Deparse
247
248 Perl compiler backend to produce perl code
249
250 =item B::Disassembler
251
252 Disassemble Perl bytecode
253
254 =item B::Lint
255
256 Perl lint
257
258 =item B::Showlex
259
260 Show lexical variables used in functions or files
261
262 =item B::Stackobj
263
264 Helper module for CC backend
265
266 =item B::Stash
267
268 Show what stashes are loaded
269
270 =item B::Terse
271
272 Walk Perl syntax tree, printing terse info about ops
273
274 =item B::Xref
275
276 Generates cross reference reports for Perl programs
277
278 =item Benchmark
279
280 Benchmark running times of Perl code
281
282 =item ByteLoader
283
284 Load byte compiled perl code
285
286 =item CGI
287
288 Simple Common Gateway Interface Class
289
290 =item CGI::Apache
291
292 Backward compatibility module for CGI.pm
293
294 =item CGI::Carp
295
296 CGI routines for writing to the HTTPD (or other) error log
297
298 =item CGI::Cookie
299
300 Interface to Netscape Cookies
301
302 =item CGI::Fast
303
304 CGI Interface for Fast CGI
305
306 =item CGI::Pretty
307
308 Module to produce nicely formatted HTML code
309
310 =item CGI::Push
311
312 Simple Interface to Server Push
313
314 =item CGI::Switch
315
316 Backward compatibility module for defunct CGI::Switch
317
318 =item CGI::Util
319
320 Internal utilities used by CGI module
321
322 =item CPAN
323
324 Query, download and build perl modules from CPAN sites
325
326 =item CPAN::FirstTime
327
328 Utility for CPAN::Config file Initialization
329
330 =item CPAN::Nox
331
332 Wrapper around CPAN.pm without using any XS module
333
334 =item Carp
335
336 Warn of errors (from perspective of caller)
337
338 =item Carp::Heavy
339
340 No user serviceable parts inside
341
342 =item Class::ISA
343
344 Report the search path for a class's ISA tree
345
346 =item Class::Struct
347
348 Declare struct-like datatypes as Perl classes
349
350 =item Config
351
352 Access Perl configuration information
353
354 =item Cwd
355
356 Get pathname of current working directory
357
358 =item DB
359
360 Programmatic interface to the Perl debugging API (draft, subject to
361
362 =item DB_File
363
364 Perl5 access to Berkeley DB version 1.x
365
366 =item Devel::SelfStubber
367
368 Generate stubs for a SelfLoading module
369
370 =item Digest
371
372 Modules that calculate message digests
373
374 =item DirHandle
375
376 Supply object methods for directory handles
377
378 =item Dumpvalue
379
380 Provides screen dump of Perl data.
381
382 =item Encode
383
384 Character encodings
385
386 =item English
387
388 Use nice English (or awk) names for ugly punctuation variables
389
390 =item Env
391
392 Perl module that imports environment variables as scalars or arrays
393
394 =item Errno
395
396 System errno constants
397
398 =item Exporter
399
400 Implements default import method for modules
401
402 =item Exporter::Heavy
403
404 Exporter guts
405
406 =item ExtUtils::Command
407
408 Utilities to replace common UNIX commands in Makefiles etc.
409
410 =item ExtUtils::Command::MM
411
412 Commands for the MM's to use in Makefiles
413
414 =item ExtUtils::Constant
415
416 Generate XS code to import C header constants
417
418 =item ExtUtils::Embed
419
420 Utilities for embedding Perl in C/C++ applications
421
422 =item ExtUtils::Install
423
424 Install files from here to there
425
426 =item ExtUtils::Installed
427
428 Inventory management of installed modules
429
430 =item ExtUtils::Liblist
431
432 Determine libraries to use and how to use them
433
434 =item ExtUtils::MM
435
436 OS adjusted ExtUtils::MakeMaker subclass
437
438 =item ExtUtils::MM_Any
439
440 Platform agnostic MM methods
441
442 =item ExtUtils::MM_BeOS
443
444 Methods to override UN*X behaviour in ExtUtils::MakeMaker
445
446 =item ExtUtils::MM_Cygwin
447
448 Methods to override UN*X behaviour in ExtUtils::MakeMaker
449
450 =item ExtUtils::MM_DOS
451
452 DOS specific subclass of ExtUtils::MM_Unix
453
454 =item ExtUtils::MM_MacOS
455
456 Methods to override UN*X behaviour in ExtUtils::MakeMaker
457
458 =item ExtUtils::MM_NW5
459
460 Methods to override UN*X behaviour in ExtUtils::MakeMaker
461
462 =item ExtUtils::MM_OS2
463
464 Methods to override UN*X behaviour in ExtUtils::MakeMaker
465
466 =item ExtUtils::MM_UWIN
467
468 U/WIN specific subclass of ExtUtils::MM_Unix
469
470 =item ExtUtils::MM_Unix
471
472 Methods used by ExtUtils::MakeMaker
473
474 =item ExtUtils::MM_VMS
475
476 Methods to override UN*X behaviour in ExtUtils::MakeMaker
477
478 =item ExtUtils::MM_Win32
479
480 Methods to override UN*X behaviour in ExtUtils::MakeMaker
481
482 =item ExtUtils::MM_Win95
483
484 Method to customize MakeMaker for Win9X
485
486 =item ExtUtils::MY
487
488 ExtUtils::MakeMaker subclass for customization
489
490 =item ExtUtils::MakeMaker
491
492 Create an extension Makefile
493
494 =item ExtUtils::Manifest
495
496 Utilities to write and check a MANIFEST file
497
498 =item ExtUtils::Mkbootstrap
499
500 Make a bootstrap file for use by DynaLoader
501
502 =item ExtUtils::Mksymlists
503
504 Write linker options files for dynamic extension
505
506 =item ExtUtils::Packlist
507
508 Manage .packlist files
509
510 =item ExtUtils::testlib
511
512 Add blib/* directories to @INC
513
514 =item Fatal
515
516 Replace functions with equivalents which succeed or die
517
518 =item Fcntl
519
520 Load the C Fcntl.h defines
521
522 =item File::Basename
523
524 Split a pathname into pieces
525
526 =item File::CheckTree
527
528 Run many filetest checks on a tree
529
530 =item File::Compare
531
532 Compare files or filehandles
533
534 =item File::Copy
535
536 Copy files or filehandles
537
538 =item File::DosGlob
539
540 DOS like globbing and then some
541
542 =item File::Find
543
544 Traverse a directory tree.
545
546 =item File::Path
547
548 Create or remove directory trees
549
550 =item File::Spec
551
552 Portably perform operations on file names
553
554 =item File::Spec::Cygwin
555
556 Methods for Cygwin file specs
557
558 =item File::Spec::Epoc
559
560 Methods for Epoc file specs
561
562 =item File::Spec::Functions
563
564 Portably perform operations on file names
565
566 =item File::Spec::Mac
567
568 File::Spec for Mac OS (Classic)
569
570 =item File::Spec::OS2
571
572 Methods for OS/2 file specs
573
574 =item File::Spec::Unix
575
576 File::Spec for Unix, base for other File::Spec modules
577
578 =item File::Spec::VMS
579
580 Methods for VMS file specs
581
582 =item File::Spec::Win32
583
584 Methods for Win32 file specs
585
586 =item File::Temp
587
588 Return name and handle of a temporary file safely
589
590 =item File::stat
591
592 By-name interface to Perl's built-in stat() functions
593
594 =item FileCache
595
596 Keep more files open than the system permits
597
598 =item FileHandle
599
600 Supply object methods for filehandles
601
602 =item Filter::Simple
603
604 Simplified source filtering
605
606 =item FindBin
607
608 Locate directory of original perl script
609
610 =item Getopt::Long
611
612 Extended processing of command line options
613
614 =item Getopt::Std
615
616 Process single-character switches with switch clustering
617
618 =item Hash::Util
619
620 A selection of general-utility hash subroutines
621
622 =item I18N::Collate
623
624 Compare 8-bit scalar data according to the current locale
625
626 =item I18N::LangTags
627
628 Functions for dealing with RFC3066-style language tags
629
630 =item I18N::LangTags::List
631
632 Tags and names for human languages
633
634 =item IO
635
636 Load various IO modules
637
638 =item IPC::Open2
639
640 Open a process for both reading and writing
641
642 =item IPC::Open3
643
644 Open a process for reading, writing, and error handling
645
646 =item Locale::Constants
647
648 Constants for Locale codes
649
650 =item Locale::Country
651
652 ISO codes for country identification (ISO 3166)
653
654 =item Locale::Currency
655
656 ISO three letter codes for currency identification (ISO 4217)
657
658 =item Locale::Language
659
660 ISO two letter codes for language identification (ISO 639)
661
662 =item Locale::Maketext
663
664 Framework for localization
665
666 =item Locale::Maketext::TPJ13
667
668 Article about software localization
669
670 =item Locale::Script
671
672 ISO codes for script identification (ISO 15924)
673
674 =item Math::BigFloat
675
676 Arbitrary size floating point math package
677
678 =item Math::BigInt
679
680 Arbitrary size integer math package
681
682 =item Math::BigInt::Calc
683
684 Pure Perl module to support Math::BigInt
685
686 =item Math::BigRat
687
688 Arbitrarily big rationals
689
690 =item Math::Complex
691
692 Complex numbers and associated mathematical functions
693
694 =item Math::Trig
695
696 Trigonometric functions
697
698 =item Memoize
699
700 Make functions faster by trading space for time
701
702 =item Memoize::AnyDBM_File
703
704 Glue to provide EXISTS for AnyDBM_File for Storable use
705
706 =item Memoize::Expire
707
708 Plug-in module for automatic expiration of memoized values
709
710 =item Memoize::ExpireFile
711
712 Test for Memoize expiration semantics
713
714 =item Memoize::ExpireTest
715
716 Test for Memoize expiration semantics
717
718 =item Memoize::NDBM_File
719
720 Glue to provide EXISTS for NDBM_File for Storable use
721
722 =item Memoize::SDBM_File
723
724 Glue to provide EXISTS for SDBM_File for Storable use
725
726 =item Memoize::Storable
727
728 Store Memoized data in Storable database
729
730 =item NDBM_File
731
732 Tied access to ndbm files
733
734 =item NEXT
735
736 Provide a pseudo-class NEXT that allows method redispatch
737
738 =item Net::Cmd
739
740 Network Command class (as used by FTP, SMTP etc)
741
742 =item Net::Config
743
744 Local configuration data for libnet
745
746 =item Net::Domain
747
748 Attempt to evaluate the current host's internet name and domain
749
750 =item Net::FTP
751
752 FTP Client class
753
754 =item Net::NNTP
755
756 NNTP Client class
757
758 =item Net::Netrc
759
760 OO interface to users netrc file
761
762 =item Net::POP3
763
764 Post Office Protocol 3 Client class (RFC1939)
765
766 =item Net::Ping
767
768 Check a remote host for reachability
769
770 =item Net::SMTP
771
772 Simple Mail Transfer Protocol Client
773
774 =item Net::Time
775
776 Time and daytime network client interface
777
778 =item Net::hostent
779
780 By-name interface to Perl's built-in gethost*() functions
781
782 =item Net::libnetFAQ
783
784 Libnet Frequently Asked Questions
785
786 =item Net::netent
787
788 By-name interface to Perl's built-in getnet*() functions
789
790 =item Net::protoent
791
792 By-name interface to Perl's built-in getproto*() functions
793
794 =item Net::servent
795
796 By-name interface to Perl's built-in getserv*() functions
797
798 =item O
799
800 Generic interface to Perl Compiler backends
801
802 =item ODBM_File
803
804 Tied access to odbm files
805
806 =item Opcode
807
808 Disable named opcodes when compiling perl code
809
810 =item POSIX
811
812 Perl interface to IEEE Std 1003.1
813
814 =item PerlIO
815
816 On demand loader for PerlIO layers and root of PerlIO::* name space
817
818 =item PerlIO::via::QuotedPrint
819
820 PerlIO layer for quoted-printable strings
821
822 =item Pod::Checker
823
824 Check pod documents for syntax errors
825
826 =item Pod::Find
827
828 Find POD documents in directory trees
829
830 =item Pod::Functions
831
832 Group Perl's functions a la perlfunc.pod
833
834 =item Pod::Html
835
836 Module to convert pod files to HTML
837
838 =item Pod::InputObjects
839
840 Objects representing POD input paragraphs, commands, etc.
841
842 =item Pod::LaTeX
843
844 Convert Pod data to formatted Latex
845
846 =item Pod::Man
847
848 Convert POD data to formatted *roff input
849
850 =item Pod::ParseLink
851
852 Parse an LE<lt>E<gt> formatting code in POD text
853
854 =item Pod::ParseUtils
855
856 Helpers for POD parsing and conversion
857
858 =item Pod::Parser
859
860 Base class for creating POD filters and translators
861
862 =item Pod::Plainer
863
864 Perl extension for converting Pod to old style Pod.
865
866 =item Pod::Select
867
868 Extract selected sections of POD from input
869
870 =item Pod::Text
871
872 Convert POD data to formatted ASCII text
873
874 =item Pod::Text::Color
875
876 Convert POD data to formatted color ASCII text
877
878 =item Pod::Text::Overstrike
879
880 Convert POD data to formatted overstrike text
881
882 =item Pod::Text::Termcap
883
884 Convert POD data to ASCII text with format escapes
885
886 =item Pod::Usage
887
888 Print a usage message from embedded pod documentation
889
890 =item SDBM_File
891
892 Tied access to sdbm files
893
894 =item Safe
895
896 Compile and execute code in restricted compartments
897
898 =item Search::Dict
899
900 Search for key in dictionary file
901
902 =item SelectSaver
903
904 Save and restore selected file handle
905
906 =item SelfLoader
907
908 Load functions only on demand
909
910 =item Shell
911
912 Run shell commands transparently within perl
913
914 =item Socket
915
916 Load the C socket.h defines and structure manipulators 
917
918 =item Storable
919
920 Persistence for Perl data structures
921
922 =item Switch
923
924 A switch statement for Perl
925
926 =item Symbol
927
928 Manipulate Perl symbols and their names
929
930 =item Term::ANSIColor
931
932 Color screen output using ANSI escape sequences
933
934 =item Term::Cap
935
936 Perl termcap interface
937
938 =item Term::Complete
939
940 Perl word completion module
941
942 =item Term::ReadLine
943
944 Perl interface to various C<readline> packages. If
945
946 =item Test
947
948 Provides a simple framework for writing test scripts
949
950 =item Test::Builder
951
952 Backend for building test libraries
953
954 =item Test::Harness
955
956 Run perl standard test scripts with statistics
957
958 =item Test::Harness::Assert
959
960 Simple assert
961
962 =item Test::Harness::Iterator
963
964 Internal Test::Harness Iterator
965
966 =item Test::Harness::Straps
967
968 Detailed analysis of test results
969
970 =item Test::More
971
972 Yet another framework for writing test scripts
973
974 =item Test::Simple
975
976 Basic utilities for writing tests.
977
978 =item Test::Tutorial
979
980 A tutorial about writing really basic tests
981
982 =item Text::Abbrev
983
984 Create an abbreviation table from a list
985
986 =item Text::Balanced
987
988 Extract delimited text sequences from strings.
989
990 =item Text::ParseWords
991
992 Parse text into an array of tokens or array of arrays
993
994 =item Text::Soundex
995
996 Implementation of the Soundex Algorithm as Described by Knuth
997
998 =item Text::Tabs
999
1000 Expand and unexpand tabs per the unix expand(1) and unexpand(1)
1001
1002 =item Text::Wrap
1003
1004 Line wrapping to form simple paragraphs
1005
1006 =item Thread
1007
1008 Manipulate threads in Perl (for old code only)
1009
1010 =item Thread::Queue
1011
1012 Thread-safe queues
1013
1014 =item Thread::Semaphore
1015
1016 Thread-safe semaphores
1017
1018 =item Tie::Array
1019
1020 Base class for tied arrays
1021
1022 =item Tie::File
1023
1024 Access the lines of a disk file via a Perl array
1025
1026 =item Tie::Handle
1027
1028 Base class definitions for tied handles
1029
1030 =item Tie::Hash
1031
1032 Base class definitions for tied hashes
1033
1034 =item Tie::Memoize
1035
1036 Add data to hash when needed
1037
1038 =item Tie::RefHash
1039
1040 Use references as hash keys
1041
1042 =item Tie::Scalar
1043
1044 Base class definitions for tied scalars
1045
1046 =item Tie::SubstrHash
1047
1048 Fixed-table-size, fixed-key-length hashing
1049
1050 =item Time::Local
1051
1052 Efficiently compute time from local and GMT time
1053
1054 =item Time::gmtime
1055
1056 By-name interface to Perl's built-in gmtime() function
1057
1058 =item Time::localtime
1059
1060 By-name interface to Perl's built-in localtime() function
1061
1062 =item Time::tm
1063
1064 Internal object used by Time::gmtime and Time::localtime
1065
1066 =item UNIVERSAL
1067
1068 Base class for ALL classes (blessed references)
1069
1070 =item Unicode::Collate
1071
1072 Unicode Collation Algorithm
1073
1074 =item Unicode::UCD
1075
1076 Unicode character database
1077
1078 =item User::grent
1079
1080 By-name interface to Perl's built-in getgr*() functions
1081
1082 =item User::pwent
1083
1084 By-name interface to Perl's built-in getpw*() functions
1085
1086 =item Win32
1087
1088 Interfaces to some Win32 API Functions
1089
1090 =back
1091
1092 To find out I<all> modules installed on your system, including
1093 those without documentation or outside the standard release,
1094 just do this:
1095
1096     % find `perl -e 'print "@INC"'` -name '*.pm' -print
1097
1098 They should all have their own documentation installed and accessible
1099 via your system man(1) command.  If you do not have a B<find>
1100 program, you can use the Perl B<find2perl> program instead, which
1101 generates Perl code as output you can run through perl.  If you
1102 have a B<man> program but it doesn't find your modules, you'll have
1103 to fix your manpath.  See L<perl> for details.  If you have no
1104 system B<man> command, you might try the B<perldoc> program.
1105
1106 =head2 Extension Modules
1107
1108 Extension modules are written in C (or a mix of Perl and C).  They
1109 are usually dynamically loaded into Perl if and when you need them,
1110 but may also be linked in statically.  Supported extension modules
1111 include Socket, Fcntl, and POSIX.
1112
1113 Many popular C extension modules do not come bundled (at least, not
1114 completely) due to their sizes, volatility, or simply lack of time
1115 for adequate testing and configuration across the multitude of
1116 platforms on which Perl was beta-tested.  You are encouraged to
1117 look for them on CPAN (described below), or using web search engines
1118 like Alta Vista or Deja News.
1119
1120 =head1 CPAN
1121
1122 CPAN stands for Comprehensive Perl Archive Network; it's a globally
1123 replicated trove of Perl materials, including documentation, style
1124 guides, tricks and traps, alternate ports to non-Unix systems and
1125 occasional binary distributions for these.   Search engines for
1126 CPAN can be found at http://www.cpan.org/
1127
1128 Most importantly, CPAN includes around a thousand unbundled modules,
1129 some of which require a C compiler to build.  Major categories of
1130 modules are:
1131
1132 =over
1133
1134 =item *
1135
1136 Language Extensions and Documentation Tools
1137
1138 =item *
1139
1140 Development Support
1141
1142 =item *
1143
1144 Operating System Interfaces
1145
1146 =item *
1147
1148 Networking, Device Control (modems) and InterProcess Communication
1149
1150 =item *
1151
1152 Data Types and Data Type Utilities
1153
1154 =item *
1155
1156 Database Interfaces
1157
1158 =item *
1159
1160 User Interfaces
1161
1162 =item *
1163
1164 Interfaces to / Emulations of Other Programming Languages
1165
1166 =item *
1167
1168 File Names, File Systems and File Locking (see also File Handles)
1169
1170 =item *
1171
1172 String Processing, Language Text Processing, Parsing, and Searching
1173
1174 =item *
1175
1176 Option, Argument, Parameter, and Configuration File Processing
1177
1178 =item *
1179
1180 Internationalization and Locale
1181
1182 =item *
1183
1184 Authentication, Security, and Encryption
1185
1186 =item *
1187
1188 World Wide Web, HTML, HTTP, CGI, MIME
1189
1190 =item *
1191
1192 Server and Daemon Utilities
1193
1194 =item *
1195
1196 Archiving and Compression
1197
1198 =item *
1199
1200 Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1201
1202 =item *
1203
1204 Mail and Usenet News
1205
1206 =item *
1207
1208 Control Flow Utilities (callbacks and exceptions etc)
1209
1210 =item *
1211
1212 File Handle and Input/Output Stream Utilities
1213
1214 =item *
1215
1216 Miscellaneous Modules
1217
1218 =back
1219
1220 The list of the registered CPAN sites as of this writing follows.
1221 Please note that the sorting order is alphabetical on fields:
1222
1223 Continent
1224    |
1225    |-->Country
1226          |
1227          |-->[state/province]
1228                    |
1229                    |-->ftp
1230                    |
1231                    |-->[http]
1232
1233 and thus the North American servers happen to be listed between the
1234 European and the South American sites.
1235
1236 You should try to choose one close to you.
1237
1238 =head2 Africa
1239
1240 =over 4
1241
1242 =item South Africa
1243
1244                       ftp://ftp.is.co.za/programming/perl/CPAN/
1245                       ftp://ftp.mweb.co.za/pub/mirrors/cpan/
1246                       ftp://ftp.saix.net/pub/CPAN/
1247                       ftp://ftp.sun.ac.za/CPAN/CPAN/
1248
1249 =back
1250
1251 =head2 Asia
1252
1253 =over 4
1254
1255 =item China
1256
1257                       ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
1258                       http://www2.linuxforum.net/mirror/CPAN/
1259                       http://cpan.shellhung.org/
1260                       ftp://ftp.shellhung.org/pub/CPAN
1261
1262 =item India
1263
1264                       http://cpan.in.freeos.com
1265                       ftp://cpan.in.freeos.com/pub/CPAN/
1266
1267 =item Indonesia
1268
1269                       http://cpan.itb.web.id/
1270                       ftp://mirrors.piksi.itb.ac.id/CPAN/
1271                       http://cpan.cbn.net.id/
1272                       ftp://ftp.cbn.net.id/mirror/CPAN
1273                       http://CPAN.mweb.co.id/
1274                       ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
1275
1276 =item Israel
1277
1278                       http://www.iglu.org.il:/pub/CPAN/
1279                       ftp://ftp.iglu.org.il/pub/CPAN/
1280                       http://cpan.lerner.co.il/
1281                       http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1282                       ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1283
1284 =item Japan
1285
1286                       ftp://ftp.u-aizu.ac.jp/pub/CPAN
1287                       ftp://ftp.kddlabs.co.jp/CPAN/
1288                       http://mirror.nucba.ac.jp/mirror/Perl/
1289                       ftp://mirror.nucba.ac.jp/mirror/Perl/
1290                       ftp://ftp.meisei-u.ac.jp/pub/CPAN/
1291                       ftp://ftp.ayamura.org/pub/CPAN/
1292                       ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1293                       ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1294                       ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1295
1296 =item Korea
1297
1298                       http://mirror.Mazic.org/pub/CPAN
1299                       ftp://mirror.Mazic.org/pub/CPAN
1300
1301 =item Philippines
1302
1303                       http://www.adzu.edu.ph/CPAN
1304
1305 =item Russian Federation
1306
1307                       http://cpan.tomsk.ru
1308                       ftp://cpan.tomsk.ru/pub/CPAN
1309
1310 =item Saudi Arabia
1311
1312                       ftp://ftp.isu.net.sa/pub/CPAN/
1313
1314 =item Singapore
1315
1316                       http://cpan.hjc.edu.sg
1317                       http://mirror.averse.net/pub/CPAN
1318                       ftp://mirror.averse.net/pub/CPAN
1319
1320 =item South Korea
1321
1322                       http://CPAN.bora.net/
1323                       ftp://ftp.bora.net/pub/CPAN/
1324                       http://ftp.kornet.net/pub/CPAN/
1325                       ftp://ftp.kornet.net/pub/CPAN/
1326                       ftp://ftp.nuri.net/pub/CPAN/
1327                       http://ftp.xgate.co.kr/cpan/
1328                       ftp://ftp.xgate.co.kr/pub/mirror/CPAN
1329
1330 =item Taiwan
1331
1332                       ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
1333                       ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
1334                       ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1335                       http://ftp.tku.edu.tw/pub/CPAN/
1336                       ftp://ftp.tku.edu.tw/pub/CPAN/
1337
1338 =item Thailand
1339
1340                       ftp://ftp.loxinfo.co.th/pub/cpan/
1341                       ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1342
1343 =back
1344
1345 =head2 Central America
1346
1347 =over 4
1348
1349 =item Costa Rica
1350
1351                       ftp://ftp.linux.co.cr/mirrors/CPAN/
1352                       http://ftp.ucr.ac.cr/Unix/CPAN/
1353                       ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1354
1355 =back
1356
1357 =head2 Europe
1358
1359 =over 4
1360
1361 =item Austria
1362
1363                       ftp://ftp.tuwien.ac.at/pub/CPAN/
1364
1365 =item Belgium
1366
1367                       http://ftp.easynet.be/pub/CPAN/
1368                       ftp://ftp.easynet.be/pub/CPAN/
1369                       http://cpan.skynet.be
1370                       ftp://ftp.skynet.be/pub/CPAN
1371                       ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1372
1373 =item Bulgaria
1374
1375                       http://cpan.lirex.net/
1376                       ftp://ftp.lirex.net/pub/mirrors/CPAN
1377
1378 =item Croatia
1379
1380                       http://ftp.linux.hr/pub/CPAN/
1381                       ftp://ftp.linux.hr/pub/CPAN/
1382
1383 =item Czech Republic
1384
1385                       http://ftp.fi.muni.cz/pub/CPAN/
1386                       ftp://ftp.fi.muni.cz/pub/CPAN/
1387                       ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1388
1389 =item Denmark
1390
1391                       http://mirrors.sunsite.dk/cpan/
1392                       ftp://sunsite.dk/mirrors/cpan/
1393                       http://cpan.cybercity.dk
1394                       http://www.cpan.dk/CPAN/
1395                       ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1396
1397 =item Estonia
1398
1399                       ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1400
1401 =item Finland
1402
1403                       ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1404                       http://cpan.kpnqwest.fi/
1405
1406 =item France
1407
1408                       http://ftp.u-paris10.fr/perl/CPAN
1409                       ftp://ftp.u-paris10.fr/perl/CPAN
1410                       http://cpan.mirrors.easynet.fr/
1411                       ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1412                       ftp://ftp.club-internet.fr/pub/perl/CPAN/
1413                       http://fr.cpan.org/
1414                       ftp://ftp.lip6.fr/pub/perl/CPAN/
1415                       ftp://ftp.oleane.net/pub/mirrors/CPAN/
1416                       ftp://ftp.pasteur.fr/pub/computing/CPAN/
1417                       http://mir2.ovh.net/ftp.cpan.org
1418                       ftp://mir1.ovh.net/ftp.cpan.org
1419                       http://ftp.u-strasbg.fr/CPAN
1420                       ftp://ftp.u-strasbg.fr/CPAN
1421                       http://cpan.cict.fr/
1422                       ftp://cpan.cict.fr/pub/CPAN/
1423                       ftp://ftp.uvsq.fr/pub/perl/CPAN/
1424
1425 =item Germany
1426
1427                       ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
1428                       ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1429                       ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1430                       ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1431                       http://pandemonium.tiscali.de/pub/CPAN/
1432                       ftp://pandemonium.tiscali.de/pub/CPAN/
1433                       http://ftp.gwdg.de/pub/languages/perl/CPAN/
1434                       ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1435                       ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1436                       ftp://ftp.leo.org/pub/CPAN/
1437                       http://cpan.noris.de/
1438                       ftp://cpan.noris.de/pub/CPAN/
1439                       ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1440                       ftp://ftp.gmd.de/mirrors/CPAN/
1441
1442 =item Greece
1443
1444                       ftp://ftp.acn.gr/pub/lang/perl/CPAN
1445                       ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1446                       ftp://ftp.ntua.gr/pub/lang/perl/
1447
1448 =item Hungary
1449
1450                       http://cpan.artifact.hu/
1451                       ftp://cpan.artifact.hu/CPAN/
1452                       http://ftp.kfki.hu/packages/perl/CPAN/
1453                       ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1454
1455 =item Iceland
1456
1457                       http://ftp.rhnet.is/pub/CPAN/
1458                       ftp://ftp.rhnet.is/pub/CPAN/
1459
1460 =item Ireland
1461
1462                       http://cpan.indigo.ie/
1463                       ftp://cpan.indigo.ie/pub/CPAN/
1464                       http://sunsite.compapp.dcu.ie/pub/perl/
1465                       ftp://sunsite.compapp.dcu.ie/pub/perl/
1466
1467 =item Italy
1468
1469                       http://cpan.nettuno.it/
1470                       http://gusp.dyndns.org/CPAN/
1471                       ftp://gusp.dyndns.org/pub/CPAN
1472                       http://softcity.iol.it/cpan
1473                       ftp://softcity.iol.it/pub/cpan
1474                       ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1475                       ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1476                       ftp://cis.uniRoma2.it/CPAN/
1477                       ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1478                       ftp://ftp.flashnet.it/pub/CPAN/
1479
1480 =item Latvia
1481
1482                       http://kvin.lv/pub/CPAN/
1483
1484 =item Lithuania
1485
1486                       ftp://ftp.unix.lt/pub/CPAN/
1487
1488 =item Netherlands
1489
1490                       ftp://download.xs4all.nl/pub/mirror/CPAN/
1491                       ftp://ftp.nl.uu.net/pub/CPAN/
1492                       ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1493                       http://cpan.cybercomm.nl/
1494                       ftp://mirror.cybercomm.nl/pub/CPAN
1495                       ftp://ftp.cpan.nl/pub/CPAN/
1496                       http://ftp.easynet.nl/mirror/CPAN
1497                       ftp://ftp.easynet.nl/mirror/CPAN
1498                       http://archive.cs.uu.nl/mirror/CPAN/
1499                       ftp://ftp.cs.uu.nl/mirror/CPAN/
1500
1501 =item Norway
1502
1503                       ftp://ftp.uninett.no/pub/languages/perl/CPAN
1504                       ftp://ftp.uit.no/pub/languages/perl/cpan/
1505
1506 =item Poland
1507
1508                       ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
1509                       ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
1510                       ftp://ftp.man.torun.pl/pub/doc/CPAN/
1511                       ftp://sunsite.icm.edu.pl/pub/CPAN/
1512
1513 =item Portugal
1514
1515                       ftp://ftp.ua.pt/pub/CPAN/
1516                       ftp://perl.di.uminho.pt/pub/CPAN/
1517                       http://cpan.dei.uc.pt/
1518                       ftp://ftp.dei.uc.pt/pub/CPAN
1519                       ftp://ftp.ist.utl.pt/pub/CPAN/
1520                       http://cpan.ip.pt/
1521                       ftp://cpan.ip.pt/pub/cpan/
1522                       ftp://ftp.netc.pt/pub/CPAN/
1523                       ftp://ftp.up.pt/pub/CPAN
1524
1525 =item Romania
1526
1527                       ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1528                       ftp://ftp.dntis.ro/pub/cpan/
1529                       ftp://ftp.dnttm.ro/pub/CPAN/
1530                       ftp://ftp.lasting.ro/pub/CPAN
1531                       ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1532
1533 =item Russia
1534
1535                       ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1536                       http://cpan.rinet.ru/
1537                       ftp://cpan.rinet.ru/pub/mirror/CPAN/
1538                       ftp://ftp.aha.ru/pub/CPAN/
1539                       http://cpan.sai.msu.ru/
1540                       ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1541
1542 =item Slovakia
1543
1544                       http://ftp.cvt.stuba.sk/pub/CPAN/
1545                       ftp://ftp.cvt.stuba.sk/pub/CPAN/
1546
1547 =item Slovenia
1548
1549                       ftp://ftp.arnes.si/software/perl/CPAN/
1550
1551 =item Spain
1552
1553                       http://cpan.imasd.elmundo.es/
1554                       ftp://ftp.rediris.es/mirror/CPAN/
1555                       ftp://ftp.etse.urv.es/pub/perl/
1556
1557 =item Sweden
1558
1559                       http://ftp.du.se/CPAN/
1560                       ftp://ftp.du.se/pub/CPAN/
1561                       ftp://mirror.dataphone.se/pub/CPAN
1562                       ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1563
1564 =item Switzerland
1565
1566                       ftp://ftp.danyk.ch/CPAN/
1567                       ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1568
1569 =item Turkey
1570
1571                       http://ftp.ulak.net.tr/perl/CPAN/
1572                       ftp://ftp.ulak.net.tr/perl/CPAN
1573                       ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1574
1575 =item Ukraine
1576
1577                       http://cpan.org.ua/
1578                       ftp://cpan.org.ua/
1579                       ftp://ftp.perl.org.ua/pub/CPAN/
1580
1581 =item United Kingdom
1582
1583                       http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1584                       ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1585                       http://cpan.teleglobe.net/
1586                       ftp://cpan.teleglobe.net/pub/CPAN
1587                       http://cpan.crazygreek.co.uk
1588                       ftp://ftp.demon.co.uk/pub/CPAN/
1589                       http://cpan.m.flirble.org/
1590                       ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1591                       ftp://ftp.plig.org/pub/CPAN/
1592                       http://mirror.uklinux.net/CPAN/
1593                       ftp://mirror.uklinux.net/pub/CPAN/
1594                       http://cpan.mirrors.clockerz.net/
1595                       ftp://ftp.clockerz.net/pub/CPAN/
1596                       ftp://usit.shef.ac.uk/pub/packages/CPAN/
1597
1598 =back
1599
1600 =head2 North America
1601
1602 =over 4
1603
1604 =item Alberta
1605
1606                       http://sunsite.ualberta.ca/pub/Mirror/CPAN/
1607                       ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
1608
1609 =item Manitoba
1610
1611                       http://theoryx5.uwinnipeg.ca/pub/CPAN/
1612                       ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1613
1614 =item Nova Scotia
1615
1616                       ftp://cpan.chebucto.ns.ca/pub/CPAN/
1617
1618 =item Ontario
1619
1620                       ftp://ftp.crc.ca/pub/CPAN/
1621
1622 =item Quebec
1623
1624                       http://cpan.mirror.smartworker.org/
1625
1626 =item Mexico
1627
1628                       http://cpan.azc.uam.mx
1629                       ftp://cpan.azc.uam.mx/mirrors/CPAN
1630                       http://cpan.unam.mx/
1631                       ftp://cpan.unam.mx/pub/CPAN
1632                       http://www.msg.com.mx/CPAN/
1633                       ftp://ftp.msg.com.mx/pub/CPAN/
1634
1635 =back
1636
1637 =head2 United States
1638
1639 =over 4
1640
1641 =item Alabama
1642
1643                       http://mirror.hiwaay.net/CPAN/
1644                       ftp://mirror.hiwaay.net/CPAN/
1645
1646 =item California
1647
1648                       http://cpan.develooper.com/
1649                       http://www.cpan.org/
1650                       ftp://cpan.valueclick.com/pub/CPAN/
1651                       http://mirrors.gossamer-threads.com/CPAN
1652                       ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1653                       http://mirrors.kernel.org/cpan/
1654                       ftp://mirrors.kernel.org/pub/CPAN
1655                       http://cpan.digisle.net/
1656                       ftp://cpan.digisle.net/pub/CPAN
1657                       http://www.perl.com/CPAN/
1658                       http://download.sourceforge.net/mirrors/CPAN/
1659
1660 =item Colorado
1661
1662                       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1663
1664 =item Delaware
1665
1666                       http://ftp.lug.udel.edu/pub/CPAN
1667                       ftp://ftp.lug.udel.edu/pub/CPAN
1668
1669 =item District of Columbia
1670
1671                       ftp://ftp.dc.aleron.net/pub/CPAN/
1672
1673 =item Florida
1674
1675                       ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1676                       http://mirror.csit.fsu.edu/pub/CPAN/
1677                       ftp://mirror.csit.fsu.edu/pub/CPAN/
1678                       http://cpan.mirrors.nks.net/
1679
1680 =item Illinois
1681
1682                       http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1683                       ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1684
1685 =item Indiana
1686
1687                       ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1688                       http://cpan.netnitco.net/
1689                       ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1690                       http://archive.progeny.com/CPAN/
1691                       ftp://archive.progeny.com/CPAN/
1692                       ftp://cpan.in-span.net/
1693                       http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1694                       ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1695
1696 =item Kentucky
1697
1698                       http://cpan.uky.edu/
1699                       ftp://cpan.uky.edu/pub/CPAN/
1700
1701 =item Massachusetts
1702
1703                       ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1704                       http://cpan.mirrors.netnumina.com/
1705                       ftp://mirrors.netnumina.com/cpan/
1706
1707 =item Michigan
1708
1709                       ftp://cpan.cse.msu.edu/
1710
1711 =item New Jersey
1712
1713                       ftp://ftp.cpanel.net/pub/CPAN/
1714                       http://cpan.teleglobe.net/
1715                       ftp://cpan.teleglobe.net/pub/CPAN
1716
1717 =item New York
1718
1719                       ftp://ftp.exobit.org/pub/perl/CPAN
1720                       http://cpan.belfry.net/
1721                       http://cpan.thepirtgroup.com/
1722                       ftp://cpan.thepirtgroup.com/
1723                       ftp://ftp.stealth.net/pub/CPAN/
1724                       http://www.rge.com/pub/languages/perl/
1725                       ftp://ftp.rge.com/pub/languages/perl/
1726                       ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
1727
1728 =item North Carolina
1729
1730                       ftp://ftp.duke.edu/pub/perl/
1731
1732 =item Ohio
1733
1734                       ftp://ftp.loaded.net/pub/CPAN/
1735
1736 =item Oklahoma
1737
1738                       ftp://ftp.ou.edu/mirrors/CPAN/
1739
1740 =item Oregon
1741
1742                       ftp://ftp.orst.edu/pub/CPAN
1743
1744 =item Pennsylvania
1745
1746                       http://ftp.epix.net/CPAN/
1747                       ftp://ftp.epix.net/pub/languages/perl/
1748                       http://mirrors.phenominet.com/pub/CPAN/
1749                       ftp://mirrors.phenominet.com/pub/CPAN/
1750                       http://cpan.pair.com/
1751                       ftp://cpan.pair.com/pub/CPAN/
1752                       ftp://carroll.cac.psu.edu/pub/CPAN/
1753
1754 =item Tennessee
1755
1756                       ftp://ftp.sunsite.utk.edu/pub/CPAN/
1757
1758 =item Texas
1759
1760                       http://ftp.sedl.org/pub/mirrors/CPAN/
1761                       ftp://mirror.telentente.com/pub/CPAN
1762
1763 =item Utah
1764
1765                       ftp://mirror.xmission.com/CPAN/
1766
1767 =item Virginia
1768
1769                       http://mirrors.rcn.net/pub/lang/CPAN/
1770                       ftp://mirrors.rcn.net/pub/lang/CPAN/
1771                       http://perl.secsup.org/
1772                       ftp://perl.secsup.org/pub/perl/
1773                       http://mirrors.phihost.com/CPAN/
1774                       ftp://mirrors.phihost.com/CPAN/
1775                       ftp://ruff.cs.jmu.edu/pub/CPAN/
1776                       http://perl.Liquidation.com/CPAN/
1777
1778 =item ashington
1779
1780                       http://cpan.llarian.net/
1781                       ftp://cpan.llarian.net/pub/CPAN/
1782                       http://cpan.mirrorcentral.com/
1783                       ftp://ftp.mirrorcentral.com/pub/CPAN/
1784                       ftp://ftp-mirror.internap.com/pub/CPAN/
1785
1786 =item Wisconsin
1787
1788                       http://mirror.sit.wisc.edu/pub/CPAN/
1789                       ftp://mirror.sit.wisc.edu/pub/CPAN/
1790
1791 =back
1792
1793 =head2 Oceania
1794
1795 =over 4
1796
1797 =item Australia
1798
1799                       http://ftp.planetmirror.com/pub/CPAN/
1800                       ftp://ftp.planetmirror.com/pub/CPAN/
1801                       ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
1802                       ftp://cpan.topend.com.au/pub/CPAN/
1803
1804 =item New Zealand
1805
1806                       ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
1807                       http://cpan.soa.co.nz/CPAN/
1808
1809 =back
1810
1811 =head2 South America
1812
1813 =over 4
1814
1815 =item Argentina
1816
1817                       ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
1818                       http://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
1819                       ftp://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
1820
1821 =item Brazil
1822
1823                       ftp://cpan.pop-mg.com.br/pub/CPAN/
1824                       ftp://ftp.matrix.com.br/pub/perl/CPAN/
1825
1826 =item Chile
1827
1828                       http://cpan.netglobalis.net/
1829                       ftp://cpan.netglobalis.net/pub/CPAN/
1830
1831 =back
1832
1833 =head2 RSYNC Mirrors
1834
1835                       ftp.fcaglp.unlp.edu.ar::CPAN
1836                       cpan.mirror.smartworker.org::CPAN
1837                       theoryx5.uwinnipeg.ca::CPAN
1838                       ftp.shellhung.org::CPAN
1839                       ftp.funet.fi::CPAN
1840                       ftp.u-paris10.fr::CPAN
1841                       mir1.ovh.net::CPAN
1842                       ftp.gwdg.de::FTP/languages/perl/CPAN/
1843                       ftp.leo.org::CPAN
1844                       CPAN.piksi.itb.ac.id::CPAN
1845                       ftp.cbn.net.id::CPAN
1846                       ftp.iglu.org.il::CPAN
1847                       gusp.dyndns.org::cpan
1848                       ftp.kddlabs.co.jp::cpan
1849                       ftp.ayamura.org::pub/CPAN/
1850                       mirror.averse.net::cpan
1851                       cpan.teleglobe.net::CPAN
1852                       ftp.sedl.org::cpan
1853                       archive.progeny.com::CPAN
1854                       cpan.teleglobe.net::CPAN
1855                       ftp.lug.udel.edu::cpan
1856                       mirrors.kernel.org::mirrors/CPAN
1857                       mirrors.phenominet.com::CPAN
1858                       mirror.csit.fsu.edu::CPAN
1859                       csociety-ftp.ecn.purdue.edu::CPAN
1860
1861 For an up-to-date listing of CPAN sites,
1862 see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
1863
1864 =head1 Modules: Creation, Use, and Abuse
1865
1866 (The following section is borrowed directly from Tim Bunce's modules
1867 file, available at your nearest CPAN site.)
1868
1869 Perl implements a class using a package, but the presence of a
1870 package doesn't imply the presence of a class.  A package is just a
1871 namespace.  A class is a package that provides subroutines that can be
1872 used as methods.  A method is just a subroutine that expects, as its
1873 first argument, either the name of a package (for "static" methods),
1874 or a reference to something (for "virtual" methods).
1875
1876 A module is a file that (by convention) provides a class of the same
1877 name (sans the .pm), plus an import method in that class that can be
1878 called to fetch exported symbols.  This module may implement some of
1879 its methods by loading dynamic C or C++ objects, but that should be
1880 totally transparent to the user of the module.  Likewise, the module
1881 might set up an AUTOLOAD function to slurp in subroutine definitions on
1882 demand, but this is also transparent.  Only the F<.pm> file is required to
1883 exist.  See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
1884 the AUTOLOAD mechanism.
1885
1886 =head2 Guidelines for Module Creation
1887
1888 =over 4
1889
1890 =item  *
1891
1892 Do similar modules already exist in some form?
1893
1894 If so, please try to reuse the existing modules either in whole or
1895 by inheriting useful features into a new class.  If this is not
1896 practical try to get together with the module authors to work on
1897 extending or enhancing the functionality of the existing modules.
1898 A perfect example is the plethora of packages in perl4 for dealing
1899 with command line options.
1900
1901 If you are writing a module to expand an already existing set of
1902 modules, please coordinate with the author of the package.  It
1903 helps if you follow the same naming scheme and module interaction
1904 scheme as the original author.
1905
1906 =item  *
1907
1908 Try to design the new module to be easy to extend and reuse.
1909
1910 Try to C<use warnings;> (or C<use warnings qw(...);>).
1911 Remember that you can add C<no warnings qw(...);> to individual blocks
1912 of code that need less warnings.
1913
1914 Use blessed references.  Use the two argument form of bless to bless
1915 into the class name given as the first parameter of the constructor,
1916 e.g.,:
1917
1918  sub new {
1919      my $class = shift;
1920      return bless {}, $class;
1921  }
1922
1923 or even this if you'd like it to be used as either a static
1924 or a virtual method.
1925
1926  sub new {
1927      my $self  = shift;
1928      my $class = ref($self) || $self;
1929      return bless {}, $class;
1930  }
1931
1932 Pass arrays as references so more parameters can be added later
1933 (it's also faster).  Convert functions into methods where
1934 appropriate.  Split large methods into smaller more flexible ones.
1935 Inherit methods from other modules if appropriate.
1936
1937 Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
1938 Generally you can delete the C<eq 'FOO'> part with no harm at all.
1939 Let the objects look after themselves! Generally, avoid hard-wired
1940 class names as far as possible.
1941
1942 Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
1943 C<< $r->func() >> would work (see L<perlbot> for more details).
1944
1945 Use autosplit so little used or newly added functions won't be a
1946 burden to programs that don't use them. Add test functions to
1947 the module after __END__ either using AutoSplit or by saying:
1948
1949  eval join('',<main::DATA>) || die $@ unless caller();
1950
1951 Does your module pass the 'empty subclass' test? If you say
1952 C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
1953 to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
1954 does your application still work if you change:  C<$obj = new YOURCLASS;>
1955 into: C<$obj = new SUBCLASS;> ?
1956
1957 Avoid keeping any state information in your packages. It makes it
1958 difficult for multiple other packages to use yours. Keep state
1959 information in objects.
1960
1961 Always use B<-w>.
1962
1963 Try to C<use strict;> (or C<use strict qw(...);>).
1964 Remember that you can add C<no strict qw(...);> to individual blocks
1965 of code that need less strictness.
1966
1967 Always use B<-w>.
1968
1969 Follow the guidelines in the perlstyle(1) manual.
1970
1971 Always use B<-w>.
1972
1973 =item  *
1974
1975 Some simple style guidelines
1976
1977 The perlstyle manual supplied with Perl has many helpful points.
1978
1979 Coding style is a matter of personal taste. Many people evolve their
1980 style over several years as they learn what helps them write and
1981 maintain good code.  Here's one set of assorted suggestions that
1982 seem to be widely used by experienced developers:
1983
1984 Use underscores to separate words.  It is generally easier to read
1985 $var_names_like_this than $VarNamesLikeThis, especially for
1986 non-native speakers of English. It's also a simple rule that works
1987 consistently with VAR_NAMES_LIKE_THIS.
1988
1989 Package/Module names are an exception to this rule. Perl informally
1990 reserves lowercase module names for 'pragma' modules like integer
1991 and strict. Other modules normally begin with a capital letter and
1992 use mixed case with no underscores (need to be short and portable).
1993
1994 You may find it helpful to use letter case to indicate the scope
1995 or nature of a variable. For example:
1996
1997  $ALL_CAPS_HERE   constants only (beware clashes with Perl vars)
1998  $Some_Caps_Here  package-wide global/static
1999  $no_caps_here    function scope my() or local() variables
2000
2001 Function and method names seem to work best as all lowercase.
2002 e.g., C<< $obj->as_string() >>.
2003
2004 You can use a leading underscore to indicate that a variable or
2005 function should not be used outside the package that defined it.
2006
2007 =item  *
2008
2009 Select what to export.
2010
2011 Do NOT export method names!
2012
2013 Do NOT export anything else by default without a good reason!
2014
2015 Exports pollute the namespace of the module user.  If you must
2016 export try to use @EXPORT_OK in preference to @EXPORT and avoid
2017 short or common names to reduce the risk of name clashes.
2018
2019 Generally anything not exported is still accessible from outside the
2020 module using the ModuleName::item_name (or C<< $blessed_ref->method >>)
2021 syntax.  By convention you can use a leading underscore on names to
2022 indicate informally that they are 'internal' and not for public use.
2023
2024 (It is actually possible to get private functions by saying:
2025 C<my $subref = sub { ... };  &$subref;>.  But there's no way to call that
2026 directly as a method, because a method must have a name in the symbol
2027 table.)
2028
2029 As a general rule, if the module is trying to be object oriented
2030 then export nothing. If it's just a collection of functions then
2031 @EXPORT_OK anything but use @EXPORT with caution.
2032
2033 =item  *
2034
2035 Select a name for the module.
2036
2037 This name should be as descriptive, accurate, and complete as
2038 possible.  Avoid any risk of ambiguity. Always try to use two or
2039 more whole words.  Generally the name should reflect what is special
2040 about what the module does rather than how it does it.  Please use
2041 nested module names to group informally or categorize a module.
2042 There should be a very good reason for a module not to have a nested name.
2043 Module names should begin with a capital letter.
2044
2045 Having 57 modules all called Sort will not make life easy for anyone
2046 (though having 23 called Sort::Quick is only marginally better :-).
2047 Imagine someone trying to install your module alongside many others.
2048 If in any doubt ask for suggestions in comp.lang.perl.misc.
2049
2050 If you are developing a suite of related modules/classes it's good
2051 practice to use nested classes with a common prefix as this will
2052 avoid namespace clashes. For example: Xyz::Control, Xyz::View,
2053 Xyz::Model etc. Use the modules in this list as a naming guide.
2054
2055 If adding a new module to a set, follow the original author's
2056 standards for naming modules and the interface to methods in
2057 those modules.
2058
2059 If developing modules for private internal or project specific use,
2060 that will never be released to the public, then you should ensure
2061 that their names will not clash with any future public module. You
2062 can do this either by using the reserved Local::* category or by
2063 using a category name that includes an underscore like Foo_Corp::*.
2064
2065 To be portable each component of a module name should be limited to
2066 11 characters. If it might be used on MS-DOS then try to ensure each is
2067 unique in the first 8 characters. Nested modules make this easier.
2068
2069 =item  *
2070
2071 Have you got it right?
2072
2073 How do you know that you've made the right decisions? Have you
2074 picked an interface design that will cause problems later? Have
2075 you picked the most appropriate name? Do you have any questions?
2076
2077 The best way to know for sure, and pick up many helpful suggestions,
2078 is to ask someone who knows. Comp.lang.perl.misc is read by just about
2079 all the people who develop modules and it's the best place to ask.
2080
2081 All you need to do is post a short summary of the module, its
2082 purpose and interfaces. A few lines on each of the main methods is
2083 probably enough. (If you post the whole module it might be ignored
2084 by busy people - generally the very people you want to read it!)
2085
2086 Don't worry about posting if you can't say when the module will be
2087 ready - just say so in the message. It might be worth inviting
2088 others to help you, they may be able to complete it for you!
2089
2090 =item  *
2091
2092 README and other Additional Files.
2093
2094 It's well known that software developers usually fully document the
2095 software they write. If, however, the world is in urgent need of
2096 your software and there is not enough time to write the full
2097 documentation please at least provide a README file containing:
2098
2099 =over 10
2100
2101 =item *
2102
2103 A description of the module/package/extension etc.
2104
2105 =item *
2106
2107 A copyright notice - see below.
2108
2109 =item *
2110
2111 Prerequisites - what else you may need to have.
2112
2113 =item *
2114
2115 How to build it - possible changes to Makefile.PL etc.
2116
2117 =item *
2118
2119 How to install it.
2120
2121 =item *
2122
2123 Recent changes in this release, especially incompatibilities
2124
2125 =item *
2126
2127 Changes / enhancements you plan to make in the future.
2128
2129 =back
2130
2131 If the README file seems to be getting too large you may wish to
2132 split out some of the sections into separate files: INSTALL,
2133 Copying, ToDo etc.
2134
2135 =over 4
2136
2137 =item *
2138
2139 Adding a Copyright Notice.
2140
2141 How you choose to license your work is a personal decision.
2142 The general mechanism is to assert your Copyright and then make
2143 a declaration of how others may copy/use/modify your work.
2144
2145 Perl, for example, is supplied with two types of licence: The GNU
2146 GPL and The Artistic Licence (see the files README, Copying, and
2147 Artistic).  Larry has good reasons for NOT just using the GNU GPL.
2148
2149 My personal recommendation, out of respect for Larry, Perl, and the
2150 Perl community at large is to state something simply like:
2151
2152  Copyright (c) 1995 Your Name. All rights reserved.
2153  This program is free software; you can redistribute it and/or
2154  modify it under the same terms as Perl itself.
2155
2156 This statement should at least appear in the README file. You may
2157 also wish to include it in a Copying file and your source files.
2158 Remember to include the other words in addition to the Copyright.
2159
2160 =item  *
2161
2162 Give the module a version/issue/release number.
2163
2164 To be fully compatible with the Exporter and MakeMaker modules you
2165 should store your module's version number in a non-my package
2166 variable called $VERSION.  This should be a floating point
2167 number with at least two digits after the decimal (i.e., hundredths,
2168 e.g, C<$VERSION = "0.01">).  Don't use a "1.3.2" style version.
2169 See L<Exporter> for details.
2170
2171 It may be handy to add a function or method to retrieve the number.
2172 Use the number in announcements and archive file names when
2173 releasing the module (ModuleName-1.02.tar.Z).
2174 See perldoc ExtUtils::MakeMaker.pm for details.
2175
2176 =item  *
2177
2178 How to release and distribute a module.
2179
2180 It's good idea to post an announcement of the availability of your
2181 module (or the module itself if small) to the comp.lang.perl.announce
2182 Usenet newsgroup.  This will at least ensure very wide once-off
2183 distribution.
2184
2185 If possible, register the module with CPAN.  You should
2186 include details of its location in your announcement.
2187
2188 Some notes about ftp archives: Please use a long descriptive file
2189 name that includes the version number. Most incoming directories
2190 will not be readable/listable, i.e., you won't be able to see your
2191 file after uploading it. Remember to send your email notification
2192 message as soon as possible after uploading else your file may get
2193 deleted automatically. Allow time for the file to be processed
2194 and/or check the file has been processed before announcing its
2195 location.
2196
2197 FTP Archives for Perl Modules:
2198
2199 Follow the instructions and links on:
2200
2201    http://www.cpan.org/modules/00modlist.long.html
2202    http://www.cpan.org/modules/04pause.html
2203
2204 or upload to one of these sites:
2205
2206    https://pause.kbx.de/pause/
2207    http://pause.perl.org/pause/
2208
2209 and notify <modules@perl.org>.
2210
2211 By using the WWW interface you can ask the Upload Server to mirror
2212 your modules from your ftp or WWW site into your own directory on
2213 CPAN!
2214
2215 Please remember to send me an updated entry for the Module list!
2216
2217 =item  *
2218
2219 Take care when changing a released module.
2220
2221 Always strive to remain compatible with previous released versions.
2222 Otherwise try to add a mechanism to revert to the
2223 old behavior if people rely on it.  Document incompatible changes.
2224
2225 =back
2226
2227 =back
2228
2229 =head2 Guidelines for Converting Perl 4 Library Scripts into Modules
2230
2231 =over 4
2232
2233 =item  *
2234
2235 There is no requirement to convert anything.
2236
2237 If it ain't broke, don't fix it! Perl 4 library scripts should
2238 continue to work with no problems. You may need to make some minor
2239 changes (like escaping non-array @'s in double quoted strings) but
2240 there is no need to convert a .pl file into a Module for just that.
2241
2242 =item  *
2243
2244 Consider the implications.
2245
2246 All Perl applications that make use of the script will need to
2247 be changed (slightly) if the script is converted into a module.  Is
2248 it worth it unless you plan to make other changes at the same time?
2249
2250 =item  *
2251
2252 Make the most of the opportunity.
2253
2254 If you are going to convert the script to a module you can use the
2255 opportunity to redesign the interface.  The guidelines for module
2256 creation above include many of the issues you should consider.
2257
2258 =item  *
2259
2260 The pl2pm utility will get you started.
2261
2262 This utility will read *.pl files (given as parameters) and write
2263 corresponding *.pm files. The pl2pm utilities does the following:
2264
2265 =over 10
2266
2267 =item *
2268
2269 Adds the standard Module prologue lines
2270
2271 =item *
2272
2273 Converts package specifiers from ' to ::
2274
2275 =item *
2276
2277 Converts die(...) to croak(...)
2278
2279 =item *
2280
2281 Several other minor changes
2282
2283 =back
2284
2285 Being a mechanical process pl2pm is not bullet proof. The converted
2286 code will need careful checking, especially any package statements.
2287 Don't delete the original .pl file till the new .pm one works!
2288
2289 =back
2290
2291 =head2 Guidelines for Reusing Application Code
2292
2293 =over 4
2294
2295 =item  *
2296
2297 Complete applications rarely belong in the Perl Module Library.
2298
2299 =item  *
2300
2301 Many applications contain some Perl code that could be reused.
2302
2303 Help save the world! Share your code in a form that makes it easy
2304 to reuse.
2305
2306 =item  *
2307
2308 Break-out the reusable code into one or more separate module files.
2309
2310 =item  *
2311
2312 Take the opportunity to reconsider and redesign the interfaces.
2313
2314 =item  *
2315
2316 In some cases the 'application' can then be reduced to a small
2317
2318 fragment of code built on top of the reusable modules. In these cases
2319 the application could invoked as:
2320
2321      % perl -e 'use Module::Name; method(@ARGV)' ...
2322 or
2323      % perl -mModule::Name ...    (in perl5.002 or higher)
2324
2325 =back
2326
2327 =head1 NOTE
2328
2329 Perl does not enforce private and public parts of its modules as you may
2330 have been used to in other languages like C++, Ada, or Modula-17.  Perl
2331 doesn't have an infatuation with enforced privacy.  It would prefer
2332 that you stayed out of its living room because you weren't invited, not
2333 because it has a shotgun.
2334
2335 The module and its user have a contract, part of which is common law,
2336 and part of which is "written".  Part of the common law contract is
2337 that a module doesn't pollute any namespace it wasn't asked to.  The
2338 written contract for the module (A.K.A. documentation) may make other
2339 provisions.  But then you know when you C<use RedefineTheWorld> that
2340 you're redefining the world and willing to take the consequences.