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