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