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