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