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