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