Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man1 / perlmodlib.1
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "PERLMODLIB 1"
132.TH PERLMODLIB 1 "2002-06-08" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134perlmodlib \- constructing new Perl modules and finding existing ones
135.SH "DESCRIPTION"
136.IX Header "DESCRIPTION"
137.SH "THE PERL MODULE LIBRARY"
138.IX Header "THE PERL MODULE LIBRARY"
139Many modules are included the Perl distribution. These are described
140below, and all end in \fI.pm\fR. You may discover compiled library
141file (usually ending in \fI.so\fR) or small pieces of modules to be
142autoloaded (ending in \fI.al\fR); these were automatically generated
143by the installation process. You may also discover files in the
144library directory that end in either \fI.pl\fR or \fI.ph\fR. These are
145old libraries supplied so that old programs that use them still
146run. The \fI.pl\fR files will all eventually be converted into standard
147modules, and the \fI.ph\fR files made by \fBh2ph\fR will probably end up
148as extension modules made by \fBh2xs\fR. (Some \fI.ph\fR values may
149already be available through the \s-1POSIX\s0, Errno, or Fcntl modules.)
150The \fBpl2pm\fR file in the distribution may help in your conversion,
151but it's just a mechanical process and therefore far from bulletproof.
152.Sh "Pragmatic Modules"
153.IX Subsection "Pragmatic Modules"
154They work somewhat like compiler directives (pragmata) in that they
155tend to affect the compilation of your program, and thus will usually
156work well only when used within a \f(CW\*(C`use\*(C'\fR, or \f(CW\*(C`no\*(C'\fR. Most of these
157are lexically scoped, so an inner \s-1BLOCK\s0 may countermand them
158by saying:
159.PP
160.Vb 3
161\& no integer;
162\& no strict 'refs';
163\& no warnings;
164.Ve
165.PP
166which lasts until the end of that \s-1BLOCK\s0.
167.PP
168Some pragmas are lexically scoped\*(--typically those that affect the
169\&\f(CW$^H\fR hints variable. Others affect the current package instead,
170like \f(CW\*(C`use vars\*(C'\fR and \f(CW\*(C`use subs\*(C'\fR, which allow you to predeclare a
171variables or subroutines within a particular \fIfile\fR rather than
172just a block. Such declarations are effective for the entire file
173for which they were declared. You cannot rescind them with \f(CW\*(C`no
174vars\*(C'\fR or \f(CW\*(C`no subs\*(C'\fR.
175.PP
176The following pragmas are defined (and have their own documentation).
177.IP "attributes" 12
178.IX Item "attributes"
179Get/set subroutine or variable attributes
180.IP "attrs" 12
181.IX Item "attrs"
182Set/get attributes of a subroutine (deprecated)
183.IP "autouse" 12
184.IX Item "autouse"
185Postpone load of modules until a function is used
186.IP "base" 12
187.IX Item "base"
188Establish IS-A relationship with base class at compile time
189.IP "bigint" 12
190.IX Item "bigint"
191Transparent big integer support for Perl
192.IP "bignum" 12
193.IX Item "bignum"
194Transparent BigNumber support for Perl
195.IP "bigrat" 12
196.IX Item "bigrat"
197Transparent BigNumber/BigRational support for Perl
198.IP "blib" 12
199.IX Item "blib"
200Use MakeMaker's uninstalled version of a package
201.IP "bytes" 12
202.IX Item "bytes"
203Force byte semantics rather than character semantics
204.IP "charnames" 12
205.IX Item "charnames"
206Define character names for \f(CW\*(C`\eN{named}\*(C'\fR string literal escapes
207.IP "constant" 12
208.IX Item "constant"
209Declare constants
210.IP "diagnostics" 12
211.IX Item "diagnostics"
212Perl compiler pragma to force verbose warning diagnostics
213.IP "encoding" 12
214.IX Item "encoding"
215Allows you to write your script in non-ascii or non\-utf8
216.IP "fields" 12
217.IX Item "fields"
218Compile-time class fields
219.IP "filetest" 12
220.IX Item "filetest"
221Control the filetest permission operators
222.IP "if" 12
223.IX Item "if"
224\&\f(CW\*(C`use\*(C'\fR a Perl module if a condition holds
225.IP "integer" 12
226.IX Item "integer"
227Use integer arithmetic instead of floating point
228.IP "less" 12
229.IX Item "less"
230Request less of something from the compiler
231.IP "locale" 12
232.IX Item "locale"
233Use and avoid \s-1POSIX\s0 locales for built-in operations
234.IP "open" 12
235.IX Item "open"
236Set default PerlIO layers for input and output
237.IP "ops" 12
238.IX Item "ops"
239Restrict unsafe operations when compiling
240.IP "overload" 12
241.IX Item "overload"
242Package for overloading perl operations
243.IP "re" 12
244.IX Item "re"
245Alter regular expression behaviour
246.IP "sigtrap" 12
247.IX Item "sigtrap"
248Enable simple signal handling
249.IP "sort" 12
250.IX Item "sort"
251Control \fIsort()\fR behaviour
252.IP "strict" 12
253.IX Item "strict"
254Restrict unsafe constructs
255.IP "subs" 12
256.IX Item "subs"
257Predeclare sub names
258.IP "threads" 12
259.IX Item "threads"
260Perl extension allowing use of interpreter based threads from perl
261.IP "utf8" 12
262.IX Item "utf8"
263Enable/disable \s-1UTF\-8\s0 (or \s-1UTF\-EBCDIC\s0) in source code
264.IP "vars" 12
265.IX Item "vars"
266Predeclare global variable names (obsolete)
267.IP "vmsish" 12
268.IX Item "vmsish"
269Control VMS-specific language features
270.IP "warnings" 12
271.IX Item "warnings"
272Control optional warnings
273.IP "warnings::register" 12
274.IX Item "warnings::register"
275Warnings import function
276.Sh "Standard Modules"
277.IX Subsection "Standard Modules"
278Standard, bundled modules are all expected to behave in a well-defined
279manner with respect to namespace pollution because they use the
280Exporter module. See their own documentation for details.
281.IP "AnyDBM_File" 12
282.IX Item "AnyDBM_File"
283Provide framework for multiple DBMs
284.IP "Attribute::Handlers" 12
285.IX Item "Attribute::Handlers"
286Simpler definition of attribute handlers
287.IP "AutoLoader" 12
288.IX Item "AutoLoader"
289Load subroutines only on demand
290.IP "AutoSplit" 12
291.IX Item "AutoSplit"
292Split a package for autoloading
293.IP "B" 12
294.IX Item "B"
295The Perl Compiler
296.IP "B::Asmdata" 12
297.IX Item "B::Asmdata"
298Autogenerated data about Perl ops, used to generate bytecode
299.IP "B::Assembler" 12
300.IX Item "B::Assembler"
301Assemble Perl bytecode
302.IP "B::Bblock" 12
303.IX Item "B::Bblock"
304Walk basic blocks
305.IP "B::Bytecode" 12
306.IX Item "B::Bytecode"
307Perl compiler's bytecode backend
308.IP "B::C" 12
309.IX Item "B::C"
310Perl compiler's C backend
311.IP "B::CC" 12
312.IX Item "B::CC"
313Perl compiler's optimized C translation backend
314.IP "B::Concise" 12
315.IX Item "B::Concise"
316Walk Perl syntax tree, printing concise info about ops
317.IP "B::Debug" 12
318.IX Item "B::Debug"
319Walk Perl syntax tree, printing debug info about ops
320.IP "B::Deparse" 12
321.IX Item "B::Deparse"
322Perl compiler backend to produce perl code
323.IP "B::Disassembler" 12
324.IX Item "B::Disassembler"
325Disassemble Perl bytecode
326.IP "B::Lint" 12
327.IX Item "B::Lint"
328Perl lint
329.IP "B::Showlex" 12
330.IX Item "B::Showlex"
331Show lexical variables used in functions or files
332.IP "B::Stackobj" 12
333.IX Item "B::Stackobj"
334Helper module for \s-1CC\s0 backend
335.IP "B::Stash" 12
336.IX Item "B::Stash"
337Show what stashes are loaded
338.IP "B::Terse" 12
339.IX Item "B::Terse"
340Walk Perl syntax tree, printing terse info about ops
341.IP "B::Xref" 12
342.IX Item "B::Xref"
343Generates cross reference reports for Perl programs
344.IP "Benchmark" 12
345.IX Item "Benchmark"
346Benchmark running times of Perl code
347.IP "ByteLoader" 12
348.IX Item "ByteLoader"
349Load byte compiled perl code
350.IP "\s-1CGI\s0" 12
351.IX Item "CGI"
352Simple Common Gateway Interface Class
353.IP "CGI::Apache" 12
354.IX Item "CGI::Apache"
355Backward compatibility module for \s-1CGI\s0.pm
356.IP "CGI::Carp" 12
357.IX Item "CGI::Carp"
358\&\s-1CGI\s0 routines for writing to the \s-1HTTPD\s0 (or other) error log
359.IP "CGI::Cookie" 12
360.IX Item "CGI::Cookie"
361Interface to Netscape Cookies
362.IP "CGI::Fast" 12
363.IX Item "CGI::Fast"
364\&\s-1CGI\s0 Interface for Fast \s-1CGI\s0
365.IP "CGI::Pretty" 12
366.IX Item "CGI::Pretty"
367Module to produce nicely formatted \s-1HTML\s0 code
368.IP "CGI::Push" 12
369.IX Item "CGI::Push"
370Simple Interface to Server Push
371.IP "CGI::Switch" 12
372.IX Item "CGI::Switch"
373Backward compatibility module for defunct CGI::Switch
374.IP "CGI::Util" 12
375.IX Item "CGI::Util"
376Internal utilities used by \s-1CGI\s0 module
377.IP "\s-1CPAN\s0" 12
378.IX Item "CPAN"
379Query, download and build perl modules from \s-1CPAN\s0 sites
380.IP "CPAN::FirstTime" 12
381.IX Item "CPAN::FirstTime"
382Utility for CPAN::Config file Initialization
383.IP "CPAN::Nox" 12
384.IX Item "CPAN::Nox"
385Wrapper around \s-1CPAN\s0.pm without using any \s-1XS\s0 module
386.IP "Carp" 12
387.IX Item "Carp"
388Warn of errors (from perspective of caller)
389.IP "Carp::Heavy" 12
390.IX Item "Carp::Heavy"
391No user serviceable parts inside
392.IP "Class::ISA" 12
393.IX Item "Class::ISA"
394Report the search path for a class's \s-1ISA\s0 tree
395.IP "Class::Struct" 12
396.IX Item "Class::Struct"
397Declare struct-like datatypes as Perl classes
398.IP "Config" 12
399.IX Item "Config"
400Access Perl configuration information
401.IP "Cwd" 12
402.IX Item "Cwd"
403Get pathname of current working directory
404.IP "\s-1DB\s0" 12
405.IX Item "DB"
406Programmatic interface to the Perl debugging \s-1API\s0 (draft, subject to
407.IP "DB_File" 12
408.IX Item "DB_File"
409Perl5 access to Berkeley \s-1DB\s0 version 1.x
410.IP "Devel::SelfStubber" 12
411.IX Item "Devel::SelfStubber"
412Generate stubs for a SelfLoading module
413.IP "Digest" 12
414.IX Item "Digest"
415Modules that calculate message digests
416.IP "DirHandle" 12
417.IX Item "DirHandle"
418Supply object methods for directory handles
419.IP "Dumpvalue" 12
420.IX Item "Dumpvalue"
421Provides screen dump of Perl data.
422.IP "Encode" 12
423.IX Item "Encode"
424Character encodings
425.IP "English" 12
426.IX Item "English"
427Use nice English (or awk) names for ugly punctuation variables
428.IP "Env" 12
429.IX Item "Env"
430Perl module that imports environment variables as scalars or arrays
431.IP "Errno" 12
432.IX Item "Errno"
433System errno constants
434.IP "Exporter" 12
435.IX Item "Exporter"
436Implements default import method for modules
437.IP "Exporter::Heavy" 12
438.IX Item "Exporter::Heavy"
439Exporter guts
440.IP "ExtUtils::Command" 12
441.IX Item "ExtUtils::Command"
442Utilities to replace common \s-1UNIX\s0 commands in Makefiles etc.
443.IP "ExtUtils::Command::MM" 12
444.IX Item "ExtUtils::Command::MM"
445Commands for the \s-1MM\s0's to use in Makefiles
446.IP "ExtUtils::Constant" 12
447.IX Item "ExtUtils::Constant"
448Generate \s-1XS\s0 code to import C header constants
449.IP "ExtUtils::Embed" 12
450.IX Item "ExtUtils::Embed"
451Utilities for embedding Perl in C/\*(C+ applications
452.IP "ExtUtils::Install" 12
453.IX Item "ExtUtils::Install"
454Install files from here to there
455.IP "ExtUtils::Installed" 12
456.IX Item "ExtUtils::Installed"
457Inventory management of installed modules
458.IP "ExtUtils::Liblist" 12
459.IX Item "ExtUtils::Liblist"
460Determine libraries to use and how to use them
461.IP "ExtUtils::MM" 12
462.IX Item "ExtUtils::MM"
463\&\s-1OS\s0 adjusted ExtUtils::MakeMaker subclass
464.IP "ExtUtils::MM_Any" 12
465.IX Item "ExtUtils::MM_Any"
466Platform agnostic \s-1MM\s0 methods
467.IP "ExtUtils::MM_BeOS" 12
468.IX Item "ExtUtils::MM_BeOS"
469Methods to override UN*X behaviour in ExtUtils::MakeMaker
470.IP "ExtUtils::MM_Cygwin" 12
471.IX Item "ExtUtils::MM_Cygwin"
472Methods to override UN*X behaviour in ExtUtils::MakeMaker
473.IP "ExtUtils::MM_DOS" 12
474.IX Item "ExtUtils::MM_DOS"
475\&\s-1DOS\s0 specific subclass of ExtUtils::MM_Unix
476.IP "ExtUtils::MM_MacOS" 12
477.IX Item "ExtUtils::MM_MacOS"
478Methods to override UN*X behaviour in ExtUtils::MakeMaker
479.IP "ExtUtils::MM_NW5" 12
480.IX Item "ExtUtils::MM_NW5"
481Methods to override UN*X behaviour in ExtUtils::MakeMaker
482.IP "ExtUtils::MM_OS2" 12
483.IX Item "ExtUtils::MM_OS2"
484Methods to override UN*X behaviour in ExtUtils::MakeMaker
485.IP "ExtUtils::MM_UWIN" 12
486.IX Item "ExtUtils::MM_UWIN"
487U/WIN specific subclass of ExtUtils::MM_Unix
488.IP "ExtUtils::MM_Unix" 12
489.IX Item "ExtUtils::MM_Unix"
490Methods used by ExtUtils::MakeMaker
491.IP "ExtUtils::MM_VMS" 12
492.IX Item "ExtUtils::MM_VMS"
493Methods to override UN*X behaviour in ExtUtils::MakeMaker
494.IP "ExtUtils::MM_Win32" 12
495.IX Item "ExtUtils::MM_Win32"
496Methods to override UN*X behaviour in ExtUtils::MakeMaker
497.IP "ExtUtils::MM_Win95" 12
498.IX Item "ExtUtils::MM_Win95"
499Method to customize MakeMaker for Win9X
500.IP "ExtUtils::MY" 12
501.IX Item "ExtUtils::MY"
502ExtUtils::MakeMaker subclass for customization
503.IP "ExtUtils::MakeMaker" 12
504.IX Item "ExtUtils::MakeMaker"
505Create an extension Makefile
506.IP "ExtUtils::Manifest" 12
507.IX Item "ExtUtils::Manifest"
508Utilities to write and check a \s-1MANIFEST\s0 file
509.IP "ExtUtils::Mkbootstrap" 12
510.IX Item "ExtUtils::Mkbootstrap"
511Make a bootstrap file for use by DynaLoader
512.IP "ExtUtils::Mksymlists" 12
513.IX Item "ExtUtils::Mksymlists"
514Write linker options files for dynamic extension
515.IP "ExtUtils::Packlist" 12
516.IX Item "ExtUtils::Packlist"
517Manage .packlist files
518.IP "ExtUtils::testlib" 12
519.IX Item "ExtUtils::testlib"
520Add blib/* directories to \f(CW@INC\fR
521.IP "Fatal" 12
522.IX Item "Fatal"
523Replace functions with equivalents which succeed or die
524.IP "Fcntl" 12
525.IX Item "Fcntl"
526Load the C Fcntl.h defines
527.IP "File::Basename" 12
528.IX Item "File::Basename"
529Split a pathname into pieces
530.IP "File::CheckTree" 12
531.IX Item "File::CheckTree"
532Run many filetest checks on a tree
533.IP "File::Compare" 12
534.IX Item "File::Compare"
535Compare files or filehandles
536.IP "File::Copy" 12
537.IX Item "File::Copy"
538Copy files or filehandles
539.IP "File::DosGlob" 12
540.IX Item "File::DosGlob"
541\&\s-1DOS\s0 like globbing and then some
542.IP "File::Find" 12
543.IX Item "File::Find"
544Traverse a directory tree.
545.IP "File::Path" 12
546.IX Item "File::Path"
547Create or remove directory trees
548.IP "File::Spec" 12
549.IX Item "File::Spec"
550Portably perform operations on file names
551.IP "File::Spec::Cygwin" 12
552.IX Item "File::Spec::Cygwin"
553Methods for Cygwin file specs
554.IP "File::Spec::Epoc" 12
555.IX Item "File::Spec::Epoc"
556Methods for Epoc file specs
557.IP "File::Spec::Functions" 12
558.IX Item "File::Spec::Functions"
559Portably perform operations on file names
560.IP "File::Spec::Mac" 12
561.IX Item "File::Spec::Mac"
562File::Spec for Mac \s-1OS\s0 (Classic)
563.IP "File::Spec::OS2" 12
564.IX Item "File::Spec::OS2"
565Methods for \s-1OS/2\s0 file specs
566.IP "File::Spec::Unix" 12
567.IX Item "File::Spec::Unix"
568File::Spec for Unix, base for other File::Spec modules
569.IP "File::Spec::VMS" 12
570.IX Item "File::Spec::VMS"
571Methods for \s-1VMS\s0 file specs
572.IP "File::Spec::Win32" 12
573.IX Item "File::Spec::Win32"
574Methods for Win32 file specs
575.IP "File::Temp" 12
576.IX Item "File::Temp"
577Return name and handle of a temporary file safely
578.IP "File::stat" 12
579.IX Item "File::stat"
580By-name interface to Perl's built-in \fIstat()\fR functions
581.IP "FileCache" 12
582.IX Item "FileCache"
583Keep more files open than the system permits
584.IP "FileHandle" 12
585.IX Item "FileHandle"
586Supply object methods for filehandles
587.IP "Filter::Simple" 12
588.IX Item "Filter::Simple"
589Simplified source filtering
590.IP "FindBin" 12
591.IX Item "FindBin"
592Locate directory of original perl script
593.IP "Getopt::Long" 12
594.IX Item "Getopt::Long"
595Extended processing of command line options
596.IP "Getopt::Std" 12
597.IX Item "Getopt::Std"
598Process single-character switches with switch clustering
599.IP "Hash::Util" 12
600.IX Item "Hash::Util"
601A selection of general-utility hash subroutines
602.IP "I18N::Collate" 12
603.IX Item "I18N::Collate"
604Compare 8\-bit scalar data according to the current locale
605.IP "I18N::LangTags" 12
606.IX Item "I18N::LangTags"
607Functions for dealing with RFC3066\-style language tags
608.IP "I18N::LangTags::List" 12
609.IX Item "I18N::LangTags::List"
610Tags and names for human languages
611.IP "\s-1IO\s0" 12
612.IX Item "IO"
613Load various \s-1IO\s0 modules
614.IP "IPC::Open2" 12
615.IX Item "IPC::Open2"
616Open a process for both reading and writing
617.IP "IPC::Open3" 12
618.IX Item "IPC::Open3"
619Open a process for reading, writing, and error handling
620.IP "Locale::Constants" 12
621.IX Item "Locale::Constants"
622Constants for Locale codes
623.IP "Locale::Country" 12
624.IX Item "Locale::Country"
625\&\s-1ISO\s0 codes for country identification (\s-1ISO\s0 3166)
626.IP "Locale::Currency" 12
627.IX Item "Locale::Currency"
628\&\s-1ISO\s0 three letter codes for currency identification (\s-1ISO\s0 4217)
629.IP "Locale::Language" 12
630.IX Item "Locale::Language"
631\&\s-1ISO\s0 two letter codes for language identification (\s-1ISO\s0 639)
632.IP "Locale::Maketext" 12
633.IX Item "Locale::Maketext"
634Framework for localization
635.IP "Locale::Maketext::TPJ13" 12
636.IX Item "Locale::Maketext::TPJ13"
637Article about software localization
638.IP "Locale::Script" 12
639.IX Item "Locale::Script"
640\&\s-1ISO\s0 codes for script identification (\s-1ISO\s0 15924)
641.IP "Math::BigFloat" 12
642.IX Item "Math::BigFloat"
643Arbitrary size floating point math package
644.IP "Math::BigInt" 12
645.IX Item "Math::BigInt"
646Arbitrary size integer math package
647.IP "Math::BigInt::Calc" 12
648.IX Item "Math::BigInt::Calc"
649Pure Perl module to support Math::BigInt
650.IP "Math::BigRat" 12
651.IX Item "Math::BigRat"
652Arbitrarily big rationals
653.IP "Math::Complex" 12
654.IX Item "Math::Complex"
655Complex numbers and associated mathematical functions
656.IP "Math::Trig" 12
657.IX Item "Math::Trig"
658Trigonometric functions
659.IP "Memoize" 12
660.IX Item "Memoize"
661Make functions faster by trading space for time
662.IP "Memoize::AnyDBM_File" 12
663.IX Item "Memoize::AnyDBM_File"
664Glue to provide \s-1EXISTS\s0 for AnyDBM_File for Storable use
665.IP "Memoize::Expire" 12
666.IX Item "Memoize::Expire"
667Plug-in module for automatic expiration of memoized values
668.IP "Memoize::ExpireFile" 12
669.IX Item "Memoize::ExpireFile"
670Test for Memoize expiration semantics
671.IP "Memoize::ExpireTest" 12
672.IX Item "Memoize::ExpireTest"
673Test for Memoize expiration semantics
674.IP "Memoize::NDBM_File" 12
675.IX Item "Memoize::NDBM_File"
676Glue to provide \s-1EXISTS\s0 for NDBM_File for Storable use
677.IP "Memoize::SDBM_File" 12
678.IX Item "Memoize::SDBM_File"
679Glue to provide \s-1EXISTS\s0 for SDBM_File for Storable use
680.IP "Memoize::Storable" 12
681.IX Item "Memoize::Storable"
682Store Memoized data in Storable database
683.IP "NDBM_File" 12
684.IX Item "NDBM_File"
685Tied access to ndbm files
686.IP "\s-1NEXT\s0" 12
687.IX Item "NEXT"
688Provide a pseudo-class \s-1NEXT\s0 that allows method redispatch
689.IP "Net::Cmd" 12
690.IX Item "Net::Cmd"
691Network Command class (as used by \s-1FTP\s0, \s-1SMTP\s0 etc)
692.IP "Net::Config" 12
693.IX Item "Net::Config"
694Local configuration data for libnet
695.IP "Net::Domain" 12
696.IX Item "Net::Domain"
697Attempt to evaluate the current host's internet name and domain
698.IP "Net::FTP" 12
699.IX Item "Net::FTP"
700\&\s-1FTP\s0 Client class
701.IP "Net::NNTP" 12
702.IX Item "Net::NNTP"
703\&\s-1NNTP\s0 Client class
704.IP "Net::Netrc" 12
705.IX Item "Net::Netrc"
706\&\s-1OO\s0 interface to users netrc file
707.IP "Net::POP3" 12
708.IX Item "Net::POP3"
709Post Office Protocol 3 Client class (\s-1RFC1939\s0)
710.IP "Net::Ping" 12
711.IX Item "Net::Ping"
712Check a remote host for reachability
713.IP "Net::SMTP" 12
714.IX Item "Net::SMTP"
715Simple Mail Transfer Protocol Client
716.IP "Net::Time" 12
717.IX Item "Net::Time"
718Time and daytime network client interface
719.IP "Net::hostent" 12
720.IX Item "Net::hostent"
721By-name interface to Perl's built-in gethost*() functions
722.IP "Net::libnetFAQ" 12
723.IX Item "Net::libnetFAQ"
724Libnet Frequently Asked Questions
725.IP "Net::netent" 12
726.IX Item "Net::netent"
727By-name interface to Perl's built-in getnet*() functions
728.IP "Net::protoent" 12
729.IX Item "Net::protoent"
730By-name interface to Perl's built-in getproto*() functions
731.IP "Net::servent" 12
732.IX Item "Net::servent"
733By-name interface to Perl's built-in getserv*() functions
734.IP "O" 12
735.IX Item "O"
736Generic interface to Perl Compiler backends
737.IP "ODBM_File" 12
738.IX Item "ODBM_File"
739Tied access to odbm files
740.IP "Opcode" 12
741.IX Item "Opcode"
742Disable named opcodes when compiling perl code
743.IP "\s-1POSIX\s0" 12
744.IX Item "POSIX"
745Perl interface to \s-1IEEE\s0 Std 1003.1
746.IP "PerlIO" 12
747.IX Item "PerlIO"
748On demand loader for PerlIO layers and root of PerlIO::* name space
749.IP "PerlIO::via::QuotedPrint" 12
750.IX Item "PerlIO::via::QuotedPrint"
751PerlIO layer for quoted-printable strings
752.IP "Pod::Checker" 12
753.IX Item "Pod::Checker"
754Check pod documents for syntax errors
755.IP "Pod::Find" 12
756.IX Item "Pod::Find"
757Find \s-1POD\s0 documents in directory trees
758.IP "Pod::Functions" 12
759.IX Item "Pod::Functions"
760Group Perl's functions a la perlfunc.pod
761.IP "Pod::Html" 12
762.IX Item "Pod::Html"
763Module to convert pod files to \s-1HTML\s0
764.IP "Pod::InputObjects" 12
765.IX Item "Pod::InputObjects"
766Objects representing \s-1POD\s0 input paragraphs, commands, etc.
767.IP "Pod::LaTeX" 12
768.IX Item "Pod::LaTeX"
769Convert Pod data to formatted Latex
770.IP "Pod::Man" 12
771.IX Item "Pod::Man"
772Convert \s-1POD\s0 data to formatted *roff input
773.IP "Pod::ParseLink" 12
774.IX Item "Pod::ParseLink"
775Parse an L<> formatting code in \s-1POD\s0 text
776.IP "Pod::ParseUtils" 12
777.IX Item "Pod::ParseUtils"
778Helpers for \s-1POD\s0 parsing and conversion
779.IP "Pod::Parser" 12
780.IX Item "Pod::Parser"
781Base class for creating \s-1POD\s0 filters and translators
782.IP "Pod::Plainer" 12
783.IX Item "Pod::Plainer"
784Perl extension for converting Pod to old style Pod.
785.IP "Pod::Select" 12
786.IX Item "Pod::Select"
787Extract selected sections of \s-1POD\s0 from input
788.IP "Pod::Text" 12
789.IX Item "Pod::Text"
790Convert \s-1POD\s0 data to formatted \s-1ASCII\s0 text
791.IP "Pod::Text::Color" 12
792.IX Item "Pod::Text::Color"
793Convert \s-1POD\s0 data to formatted color \s-1ASCII\s0 text
794.IP "Pod::Text::Overstrike" 12
795.IX Item "Pod::Text::Overstrike"
796Convert \s-1POD\s0 data to formatted overstrike text
797.IP "Pod::Text::Termcap" 12
798.IX Item "Pod::Text::Termcap"
799Convert \s-1POD\s0 data to \s-1ASCII\s0 text with format escapes
800.IP "Pod::Usage" 12
801.IX Item "Pod::Usage"
802Print a usage message from embedded pod documentation
803.IP "SDBM_File" 12
804.IX Item "SDBM_File"
805Tied access to sdbm files
806.IP "Safe" 12
807.IX Item "Safe"
808Compile and execute code in restricted compartments
809.IP "Search::Dict" 12
810.IX Item "Search::Dict"
811Search for key in dictionary file
812.IP "SelectSaver" 12
813.IX Item "SelectSaver"
814Save and restore selected file handle
815.IP "SelfLoader" 12
816.IX Item "SelfLoader"
817Load functions only on demand
818.IP "Shell" 12
819.IX Item "Shell"
820Run shell commands transparently within perl
821.IP "Socket" 12
822.IX Item "Socket"
823Load the C socket.h defines and structure manipulators
824.IP "Storable" 12
825.IX Item "Storable"
826Persistence for Perl data structures
827.IP "Switch" 12
828.IX Item "Switch"
829A switch statement for Perl
830.IP "Symbol" 12
831.IX Item "Symbol"
832Manipulate Perl symbols and their names
833.IP "Term::ANSIColor" 12
834.IX Item "Term::ANSIColor"
835Color screen output using \s-1ANSI\s0 escape sequences
836.IP "Term::Cap" 12
837.IX Item "Term::Cap"
838Perl termcap interface
839.IP "Term::Complete" 12
840.IX Item "Term::Complete"
841Perl word completion module
842.IP "Term::ReadLine" 12
843.IX Item "Term::ReadLine"
844Perl interface to various \f(CW\*(C`readline\*(C'\fR packages. If
845.IP "Test" 12
846.IX Item "Test"
847Provides a simple framework for writing test scripts
848.IP "Test::Builder" 12
849.IX Item "Test::Builder"
850Backend for building test libraries
851.IP "Test::Harness" 12
852.IX Item "Test::Harness"
853Run perl standard test scripts with statistics
854.IP "Test::Harness::Assert" 12
855.IX Item "Test::Harness::Assert"
856Simple assert
857.IP "Test::Harness::Iterator" 12
858.IX Item "Test::Harness::Iterator"
859Internal Test::Harness Iterator
860.IP "Test::Harness::Straps" 12
861.IX Item "Test::Harness::Straps"
862Detailed analysis of test results
863.IP "Test::More" 12
864.IX Item "Test::More"
865Yet another framework for writing test scripts
866.IP "Test::Simple" 12
867.IX Item "Test::Simple"
868Basic utilities for writing tests.
869.IP "Test::Tutorial" 12
870.IX Item "Test::Tutorial"
871A tutorial about writing really basic tests
872.IP "Text::Abbrev" 12
873.IX Item "Text::Abbrev"
874Create an abbreviation table from a list
875.IP "Text::Balanced" 12
876.IX Item "Text::Balanced"
877Extract delimited text sequences from strings.
878.IP "Text::ParseWords" 12
879.IX Item "Text::ParseWords"
880Parse text into an array of tokens or array of arrays
881.IP "Text::Soundex" 12
882.IX Item "Text::Soundex"
883Implementation of the Soundex Algorithm as Described by Knuth
884.IP "Text::Tabs" 12
885.IX Item "Text::Tabs"
886Expand and unexpand tabs per the unix \fIexpand\fR\|(1) and \fIunexpand\fR\|(1)
887.IP "Text::Wrap" 12
888.IX Item "Text::Wrap"
889Line wrapping to form simple paragraphs
890.IP "Thread" 12
891.IX Item "Thread"
892Manipulate threads in Perl (for old code only)
893.IP "Thread::Queue" 12
894.IX Item "Thread::Queue"
895Thread-safe queues
896.IP "Thread::Semaphore" 12
897.IX Item "Thread::Semaphore"
898Thread-safe semaphores
899.IP "Tie::Array" 12
900.IX Item "Tie::Array"
901Base class for tied arrays
902.IP "Tie::File" 12
903.IX Item "Tie::File"
904Access the lines of a disk file via a Perl array
905.IP "Tie::Handle" 12
906.IX Item "Tie::Handle"
907Base class definitions for tied handles
908.IP "Tie::Hash" 12
909.IX Item "Tie::Hash"
910Base class definitions for tied hashes
911.IP "Tie::Memoize" 12
912.IX Item "Tie::Memoize"
913Add data to hash when needed
914.IP "Tie::RefHash" 12
915.IX Item "Tie::RefHash"
916Use references as hash keys
917.IP "Tie::Scalar" 12
918.IX Item "Tie::Scalar"
919Base class definitions for tied scalars
920.IP "Tie::SubstrHash" 12
921.IX Item "Tie::SubstrHash"
922Fixed\-table\-size, fixed-key-length hashing
923.IP "Time::Local" 12
924.IX Item "Time::Local"
925Efficiently compute time from local and \s-1GMT\s0 time
926.IP "Time::gmtime" 12
927.IX Item "Time::gmtime"
928By-name interface to Perl's built-in \fIgmtime()\fR function
929.IP "Time::localtime" 12
930.IX Item "Time::localtime"
931By-name interface to Perl's built-in \fIlocaltime()\fR function
932.IP "Time::tm" 12
933.IX Item "Time::tm"
934Internal object used by Time::gmtime and Time::localtime
935.IP "\s-1UNIVERSAL\s0" 12
936.IX Item "UNIVERSAL"
937Base class for \s-1ALL\s0 classes (blessed references)
938.IP "Unicode::Collate" 12
939.IX Item "Unicode::Collate"
940Unicode Collation Algorithm
941.IP "Unicode::UCD" 12
942.IX Item "Unicode::UCD"
943Unicode character database
944.IP "User::grent" 12
945.IX Item "User::grent"
946By-name interface to Perl's built-in getgr*() functions
947.IP "User::pwent" 12
948.IX Item "User::pwent"
949By-name interface to Perl's built-in getpw*() functions
950.IP "Win32" 12
951.IX Item "Win32"
952Interfaces to some Win32 \s-1API\s0 Functions
953.PP
954To find out \fIall\fR modules installed on your system, including
955those without documentation or outside the standard release,
956just do this:
957.PP
958.Vb 1
959\& % find `perl -e 'print "@INC"'` -name '*.pm' -print
960.Ve
961.PP
962They should all have their own documentation installed and accessible
963via your system \fIman\fR\|(1) command. If you do not have a \fBfind\fR
964program, you can use the Perl \fBfind2perl\fR program instead, which
965generates Perl code as output you can run through perl. If you
966have a \fBman\fR program but it doesn't find your modules, you'll have
967to fix your manpath. See perl for details. If you have no
968system \fBman\fR command, you might try the \fBperldoc\fR program.
969.Sh "Extension Modules"
970.IX Subsection "Extension Modules"
971Extension modules are written in C (or a mix of Perl and C). They
972are usually dynamically loaded into Perl if and when you need them,
973but may also be linked in statically. Supported extension modules
974include Socket, Fcntl, and \s-1POSIX\s0.
975.PP
976Many popular C extension modules do not come bundled (at least, not
977completely) due to their sizes, volatility, or simply lack of time
978for adequate testing and configuration across the multitude of
979platforms on which Perl was beta\-tested. You are encouraged to
980look for them on \s-1CPAN\s0 (described below), or using web search engines
981like Alta Vista or Deja News.
982.SH "CPAN"
983.IX Header "CPAN"
984\&\s-1CPAN\s0 stands for Comprehensive Perl Archive Network; it's a globally
985replicated trove of Perl materials, including documentation, style
986guides, tricks and traps, alternate ports to non-Unix systems and
987occasional binary distributions for these. Search engines for
988\&\s-1CPAN\s0 can be found at http://www.cpan.org/
989.PP
990Most importantly, \s-1CPAN\s0 includes around a thousand unbundled modules,
991some of which require a C compiler to build. Major categories of
992modules are:
993.IP "\(bu" 4
994Language Extensions and Documentation Tools
995.IP "\(bu" 4
996Development Support
997.IP "\(bu" 4
998Operating System Interfaces
999.IP "\(bu" 4
1000Networking, Device Control (modems) and InterProcess Communication
1001.IP "\(bu" 4
1002Data Types and Data Type Utilities
1003.IP "\(bu" 4
1004Database Interfaces
1005.IP "\(bu" 4
1006User Interfaces
1007.IP "\(bu" 4
1008Interfaces to / Emulations of Other Programming Languages
1009.IP "\(bu" 4
1010File Names, File Systems and File Locking (see also File Handles)
1011.IP "\(bu" 4
1012String Processing, Language Text Processing, Parsing, and Searching
1013.IP "\(bu" 4
1014Option, Argument, Parameter, and Configuration File Processing
1015.IP "\(bu" 4
1016Internationalization and Locale
1017.IP "\(bu" 4
1018Authentication, Security, and Encryption
1019.IP "\(bu" 4
1020World Wide Web, \s-1HTML\s0, \s-1HTTP\s0, \s-1CGI\s0, \s-1MIME\s0
1021.IP "\(bu" 4
1022Server and Daemon Utilities
1023.IP "\(bu" 4
1024Archiving and Compression
1025.IP "\(bu" 4
1026Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1027.IP "\(bu" 4
1028Mail and Usenet News
1029.IP "\(bu" 4
1030Control Flow Utilities (callbacks and exceptions etc)
1031.IP "\(bu" 4
1032File Handle and Input/Output Stream Utilities
1033.IP "\(bu" 4
1034Miscellaneous Modules
1035.PP
1036The list of the registered \s-1CPAN\s0 sites as of this writing follows.
1037Please note that the sorting order is alphabetical on fields:
1038.PP
1039Continent
1040 |
1041 |\-\->Country
1042 |
1043 |\-\->[state/province]
1044 |
1045 |\-\->ftp
1046 |
1047 |\-\->[http]
1048.PP
1049and thus the North American servers happen to be listed between the
1050European and the South American sites.
1051.PP
1052You should try to choose one close to you.
1053.Sh "Africa"
1054.IX Subsection "Africa"
1055.IP "South Africa" 4
1056.IX Item "South Africa"
1057.Vb 4
1058\& ftp://ftp.is.co.za/programming/perl/CPAN/
1059\& ftp://ftp.mweb.co.za/pub/mirrors/cpan/
1060\& ftp://ftp.saix.net/pub/CPAN/
1061\& ftp://ftp.sun.ac.za/CPAN/CPAN/
1062.Ve
1063.Sh "Asia"
1064.IX Subsection "Asia"
1065.IP "China" 4
1066.IX Item "China"
1067.Vb 4
1068\& ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
1069\& http://www2.linuxforum.net/mirror/CPAN/
1070\& http://cpan.shellhung.org/
1071\& ftp://ftp.shellhung.org/pub/CPAN
1072.Ve
1073.IP "India" 4
1074.IX Item "India"
1075.Vb 2
1076\& http://cpan.in.freeos.com
1077\& ftp://cpan.in.freeos.com/pub/CPAN/
1078.Ve
1079.IP "Indonesia" 4
1080.IX Item "Indonesia"
1081.Vb 6
1082\& http://cpan.itb.web.id/
1083\& ftp://mirrors.piksi.itb.ac.id/CPAN/
1084\& http://cpan.cbn.net.id/
1085\& ftp://ftp.cbn.net.id/mirror/CPAN
1086\& http://CPAN.mweb.co.id/
1087\& ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
1088.Ve
1089.IP "Israel" 4
1090.IX Item "Israel"
1091.Vb 5
1092\& http://www.iglu.org.il:/pub/CPAN/
1093\& ftp://ftp.iglu.org.il/pub/CPAN/
1094\& http://cpan.lerner.co.il/
1095\& http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1096\& ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1097.Ve
1098.IP "Japan" 4
1099.IX Item "Japan"
1100.Vb 9
1101\& ftp://ftp.u-aizu.ac.jp/pub/CPAN
1102\& ftp://ftp.kddlabs.co.jp/CPAN/
1103\& http://mirror.nucba.ac.jp/mirror/Perl/
1104\& ftp://mirror.nucba.ac.jp/mirror/Perl/
1105\& ftp://ftp.meisei-u.ac.jp/pub/CPAN/
1106\& ftp://ftp.ayamura.org/pub/CPAN/
1107\& ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1108\& ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1109\& ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1110.Ve
1111.IP "Korea" 4
1112.IX Item "Korea"
1113.Vb 2
1114\& http://mirror.Mazic.org/pub/CPAN
1115\& ftp://mirror.Mazic.org/pub/CPAN
1116.Ve
1117.IP "Philippines" 4
1118.IX Item "Philippines"
1119.Vb 1
1120\& http://www.adzu.edu.ph/CPAN
1121.Ve
1122.IP "Russian Federation" 4
1123.IX Item "Russian Federation"
1124.Vb 2
1125\& http://cpan.tomsk.ru
1126\& ftp://cpan.tomsk.ru/pub/CPAN
1127.Ve
1128.IP "Saudi Arabia" 4
1129.IX Item "Saudi Arabia"
1130.Vb 1
1131\& ftp://ftp.isu.net.sa/pub/CPAN/
1132.Ve
1133.IP "Singapore" 4
1134.IX Item "Singapore"
1135.Vb 3
1136\& http://cpan.hjc.edu.sg
1137\& http://mirror.averse.net/pub/CPAN
1138\& ftp://mirror.averse.net/pub/CPAN
1139.Ve
1140.IP "South Korea" 4
1141.IX Item "South Korea"
1142.Vb 7
1143\& http://CPAN.bora.net/
1144\& ftp://ftp.bora.net/pub/CPAN/
1145\& http://ftp.kornet.net/pub/CPAN/
1146\& ftp://ftp.kornet.net/pub/CPAN/
1147\& ftp://ftp.nuri.net/pub/CPAN/
1148\& http://ftp.xgate.co.kr/cpan/
1149\& ftp://ftp.xgate.co.kr/pub/mirror/CPAN
1150.Ve
1151.IP "Taiwan" 4
1152.IX Item "Taiwan"
1153.Vb 5
1154\& ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
1155\& ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
1156\& ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1157\& http://ftp.tku.edu.tw/pub/CPAN/
1158\& ftp://ftp.tku.edu.tw/pub/CPAN/
1159.Ve
1160.IP "Thailand" 4
1161.IX Item "Thailand"
1162.Vb 2
1163\& ftp://ftp.loxinfo.co.th/pub/cpan/
1164\& ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1165.Ve
1166.Sh "Central America"
1167.IX Subsection "Central America"
1168.IP "Costa Rica" 4
1169.IX Item "Costa Rica"
1170.Vb 3
1171\& ftp://ftp.linux.co.cr/mirrors/CPAN/
1172\& http://ftp.ucr.ac.cr/Unix/CPAN/
1173\& ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1174.Ve
1175.Sh "Europe"
1176.IX Subsection "Europe"
1177.IP "Austria" 4
1178.IX Item "Austria"
1179.Vb 1
1180\& ftp://ftp.tuwien.ac.at/pub/CPAN/
1181.Ve
1182.IP "Belgium" 4
1183.IX Item "Belgium"
1184.Vb 5
1185\& http://ftp.easynet.be/pub/CPAN/
1186\& ftp://ftp.easynet.be/pub/CPAN/
1187\& http://cpan.skynet.be
1188\& ftp://ftp.skynet.be/pub/CPAN
1189\& ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1190.Ve
1191.IP "Bulgaria" 4
1192.IX Item "Bulgaria"
1193.Vb 2
1194\& http://cpan.lirex.net/
1195\& ftp://ftp.lirex.net/pub/mirrors/CPAN
1196.Ve
1197.IP "Croatia" 4
1198.IX Item "Croatia"
1199.Vb 2
1200\& http://ftp.linux.hr/pub/CPAN/
1201\& ftp://ftp.linux.hr/pub/CPAN/
1202.Ve
1203.IP "Czech Republic" 4
1204.IX Item "Czech Republic"
1205.Vb 3
1206\& http://ftp.fi.muni.cz/pub/CPAN/
1207\& ftp://ftp.fi.muni.cz/pub/CPAN/
1208\& ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1209.Ve
1210.IP "Denmark" 4
1211.IX Item "Denmark"
1212.Vb 5
1213\& http://mirrors.sunsite.dk/cpan/
1214\& ftp://sunsite.dk/mirrors/cpan/
1215\& http://cpan.cybercity.dk
1216\& http://www.cpan.dk/CPAN/
1217\& ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1218.Ve
1219.IP "Estonia" 4
1220.IX Item "Estonia"
1221.Vb 1
1222\& ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1223.Ve
1224.IP "Finland" 4
1225.IX Item "Finland"
1226.Vb 2
1227\& ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1228\& http://cpan.kpnqwest.fi/
1229.Ve
1230.IP "France" 4
1231.IX Item "France"
1232.Vb 16
1233\& http://ftp.u-paris10.fr/perl/CPAN
1234\& ftp://ftp.u-paris10.fr/perl/CPAN
1235\& http://cpan.mirrors.easynet.fr/
1236\& ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1237\& ftp://ftp.club-internet.fr/pub/perl/CPAN/
1238\& http://fr.cpan.org/
1239\& ftp://ftp.lip6.fr/pub/perl/CPAN/
1240\& ftp://ftp.oleane.net/pub/mirrors/CPAN/
1241\& ftp://ftp.pasteur.fr/pub/computing/CPAN/
1242\& http://mir2.ovh.net/ftp.cpan.org
1243\& ftp://mir1.ovh.net/ftp.cpan.org
1244\& http://ftp.u-strasbg.fr/CPAN
1245\& ftp://ftp.u-strasbg.fr/CPAN
1246\& http://cpan.cict.fr/
1247\& ftp://cpan.cict.fr/pub/CPAN/
1248\& ftp://ftp.uvsq.fr/pub/perl/CPAN/
1249.Ve
1250.IP "Germany" 4
1251.IX Item "Germany"
1252.Vb 14
1253\& ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
1254\& ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1255\& ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1256\& ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1257\& http://pandemonium.tiscali.de/pub/CPAN/
1258\& ftp://pandemonium.tiscali.de/pub/CPAN/
1259\& http://ftp.gwdg.de/pub/languages/perl/CPAN/
1260\& ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1261\& ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1262\& ftp://ftp.leo.org/pub/CPAN/
1263\& http://cpan.noris.de/
1264\& ftp://cpan.noris.de/pub/CPAN/
1265\& ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1266\& ftp://ftp.gmd.de/mirrors/CPAN/
1267.Ve
1268.IP "Greece" 4
1269.IX Item "Greece"
1270.Vb 3
1271\& ftp://ftp.acn.gr/pub/lang/perl/CPAN
1272\& ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1273\& ftp://ftp.ntua.gr/pub/lang/perl/
1274.Ve
1275.IP "Hungary" 4
1276.IX Item "Hungary"
1277.Vb 4
1278\& http://cpan.artifact.hu/
1279\& ftp://cpan.artifact.hu/CPAN/
1280\& http://ftp.kfki.hu/packages/perl/CPAN/
1281\& ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1282.Ve
1283.IP "Iceland" 4
1284.IX Item "Iceland"
1285.Vb 2
1286\& http://ftp.rhnet.is/pub/CPAN/
1287\& ftp://ftp.rhnet.is/pub/CPAN/
1288.Ve
1289.IP "Ireland" 4
1290.IX Item "Ireland"
1291.Vb 4
1292\& http://cpan.indigo.ie/
1293\& ftp://cpan.indigo.ie/pub/CPAN/
1294\& http://sunsite.compapp.dcu.ie/pub/perl/
1295\& ftp://sunsite.compapp.dcu.ie/pub/perl/
1296.Ve
1297.IP "Italy" 4
1298.IX Item "Italy"
1299.Vb 10
1300\& http://cpan.nettuno.it/
1301\& http://gusp.dyndns.org/CPAN/
1302\& ftp://gusp.dyndns.org/pub/CPAN
1303\& http://softcity.iol.it/cpan
1304\& ftp://softcity.iol.it/pub/cpan
1305\& ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1306\& ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1307\& ftp://cis.uniRoma2.it/CPAN/
1308\& ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1309\& ftp://ftp.flashnet.it/pub/CPAN/
1310.Ve
1311.IP "Latvia" 4
1312.IX Item "Latvia"
1313.Vb 1
1314\& http://kvin.lv/pub/CPAN/
1315.Ve
1316.IP "Lithuania" 4
1317.IX Item "Lithuania"
1318.Vb 1
1319\& ftp://ftp.unix.lt/pub/CPAN/
1320.Ve
1321.IP "Netherlands" 4
1322.IX Item "Netherlands"
1323.Vb 10
1324\& ftp://download.xs4all.nl/pub/mirror/CPAN/
1325\& ftp://ftp.nl.uu.net/pub/CPAN/
1326\& ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1327\& http://cpan.cybercomm.nl/
1328\& ftp://mirror.cybercomm.nl/pub/CPAN
1329\& ftp://ftp.cpan.nl/pub/CPAN/
1330\& http://ftp.easynet.nl/mirror/CPAN
1331\& ftp://ftp.easynet.nl/mirror/CPAN
1332\& http://archive.cs.uu.nl/mirror/CPAN/
1333\& ftp://ftp.cs.uu.nl/mirror/CPAN/
1334.Ve
1335.IP "Norway" 4
1336.IX Item "Norway"
1337.Vb 2
1338\& ftp://ftp.uninett.no/pub/languages/perl/CPAN
1339\& ftp://ftp.uit.no/pub/languages/perl/cpan/
1340.Ve
1341.IP "Poland" 4
1342.IX Item "Poland"
1343.Vb 4
1344\& ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
1345\& ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
1346\& ftp://ftp.man.torun.pl/pub/doc/CPAN/
1347\& ftp://sunsite.icm.edu.pl/pub/CPAN/
1348.Ve
1349.IP "Portugal" 4
1350.IX Item "Portugal"
1351.Vb 9
1352\& ftp://ftp.ua.pt/pub/CPAN/
1353\& ftp://perl.di.uminho.pt/pub/CPAN/
1354\& http://cpan.dei.uc.pt/
1355\& ftp://ftp.dei.uc.pt/pub/CPAN
1356\& ftp://ftp.ist.utl.pt/pub/CPAN/
1357\& http://cpan.ip.pt/
1358\& ftp://cpan.ip.pt/pub/cpan/
1359\& ftp://ftp.netc.pt/pub/CPAN/
1360\& ftp://ftp.up.pt/pub/CPAN
1361.Ve
1362.IP "Romania" 4
1363.IX Item "Romania"
1364.Vb 5
1365\& ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1366\& ftp://ftp.dntis.ro/pub/cpan/
1367\& ftp://ftp.dnttm.ro/pub/CPAN/
1368\& ftp://ftp.lasting.ro/pub/CPAN
1369\& ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1370.Ve
1371.IP "Russia" 4
1372.IX Item "Russia"
1373.Vb 6
1374\& ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1375\& http://cpan.rinet.ru/
1376\& ftp://cpan.rinet.ru/pub/mirror/CPAN/
1377\& ftp://ftp.aha.ru/pub/CPAN/
1378\& http://cpan.sai.msu.ru/
1379\& ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1380.Ve
1381.IP "Slovakia" 4
1382.IX Item "Slovakia"
1383.Vb 2
1384\& http://ftp.cvt.stuba.sk/pub/CPAN/
1385\& ftp://ftp.cvt.stuba.sk/pub/CPAN/
1386.Ve
1387.IP "Slovenia" 4
1388.IX Item "Slovenia"
1389.Vb 1
1390\& ftp://ftp.arnes.si/software/perl/CPAN/
1391.Ve
1392.IP "Spain" 4
1393.IX Item "Spain"
1394.Vb 3
1395\& http://cpan.imasd.elmundo.es/
1396\& ftp://ftp.rediris.es/mirror/CPAN/
1397\& ftp://ftp.etse.urv.es/pub/perl/
1398.Ve
1399.IP "Sweden" 4
1400.IX Item "Sweden"
1401.Vb 4
1402\& http://ftp.du.se/CPAN/
1403\& ftp://ftp.du.se/pub/CPAN/
1404\& ftp://mirror.dataphone.se/pub/CPAN
1405\& ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1406.Ve
1407.IP "Switzerland" 4
1408.IX Item "Switzerland"
1409.Vb 2
1410\& ftp://ftp.danyk.ch/CPAN/
1411\& ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1412.Ve
1413.IP "Turkey" 4
1414.IX Item "Turkey"
1415.Vb 3
1416\& http://ftp.ulak.net.tr/perl/CPAN/
1417\& ftp://ftp.ulak.net.tr/perl/CPAN
1418\& ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1419.Ve
1420.IP "Ukraine" 4
1421.IX Item "Ukraine"
1422.Vb 3
1423\& http://cpan.org.ua/
1424\& ftp://cpan.org.ua/
1425\& ftp://ftp.perl.org.ua/pub/CPAN/
1426.Ve
1427.IP "United Kingdom" 4
1428.IX Item "United Kingdom"
1429.Vb 14
1430\& http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1431\& ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1432\& http://cpan.teleglobe.net/
1433\& ftp://cpan.teleglobe.net/pub/CPAN
1434\& http://cpan.crazygreek.co.uk
1435\& ftp://ftp.demon.co.uk/pub/CPAN/
1436\& http://cpan.m.flirble.org/
1437\& ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1438\& ftp://ftp.plig.org/pub/CPAN/
1439\& http://mirror.uklinux.net/CPAN/
1440\& ftp://mirror.uklinux.net/pub/CPAN/
1441\& http://cpan.mirrors.clockerz.net/
1442\& ftp://ftp.clockerz.net/pub/CPAN/
1443\& ftp://usit.shef.ac.uk/pub/packages/CPAN/
1444.Ve
1445.Sh "North America"
1446.IX Subsection "North America"
1447.IP "Alberta" 4
1448.IX Item "Alberta"
1449.Vb 2
1450\& http://sunsite.ualberta.ca/pub/Mirror/CPAN/
1451\& ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
1452.Ve
1453.IP "Manitoba" 4
1454.IX Item "Manitoba"
1455.Vb 2
1456\& http://theoryx5.uwinnipeg.ca/pub/CPAN/
1457\& ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1458.Ve
1459.IP "Nova Scotia" 4
1460.IX Item "Nova Scotia"
1461.Vb 1
1462\& ftp://cpan.chebucto.ns.ca/pub/CPAN/
1463.Ve
1464.IP "Ontario" 4
1465.IX Item "Ontario"
1466.Vb 1
1467\& ftp://ftp.crc.ca/pub/CPAN/
1468.Ve
1469.IP "Quebec" 4
1470.IX Item "Quebec"
1471.Vb 1
1472\& http://cpan.mirror.smartworker.org/
1473.Ve
1474.IP "Mexico" 4
1475.IX Item "Mexico"
1476.Vb 6
1477\& http://cpan.azc.uam.mx
1478\& ftp://cpan.azc.uam.mx/mirrors/CPAN
1479\& http://cpan.unam.mx/
1480\& ftp://cpan.unam.mx/pub/CPAN
1481\& http://www.msg.com.mx/CPAN/
1482\& ftp://ftp.msg.com.mx/pub/CPAN/
1483.Ve
1484.Sh "United States"
1485.IX Subsection "United States"
1486.IP "Alabama" 4
1487.IX Item "Alabama"
1488.Vb 2
1489\& http://mirror.hiwaay.net/CPAN/
1490\& ftp://mirror.hiwaay.net/CPAN/
1491.Ve
1492.IP "California" 4
1493.IX Item "California"
1494.Vb 11
1495\& http://cpan.develooper.com/
1496\& http://www.cpan.org/
1497\& ftp://cpan.valueclick.com/pub/CPAN/
1498\& http://mirrors.gossamer-threads.com/CPAN
1499\& ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1500\& http://mirrors.kernel.org/cpan/
1501\& ftp://mirrors.kernel.org/pub/CPAN
1502\& http://cpan.digisle.net/
1503\& ftp://cpan.digisle.net/pub/CPAN
1504\& http://www.perl.com/CPAN/
1505\& http://download.sourceforge.net/mirrors/CPAN/
1506.Ve
1507.IP "Colorado" 4
1508.IX Item "Colorado"
1509.Vb 1
1510\& ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1511.Ve
1512.IP "Delaware" 4
1513.IX Item "Delaware"
1514.Vb 2
1515\& http://ftp.lug.udel.edu/pub/CPAN
1516\& ftp://ftp.lug.udel.edu/pub/CPAN
1517.Ve
1518.IP "District of Columbia" 4
1519.IX Item "District of Columbia"
1520.Vb 1
1521\& ftp://ftp.dc.aleron.net/pub/CPAN/
1522.Ve
1523.IP "Florida" 4
1524.IX Item "Florida"
1525.Vb 4
1526\& ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1527\& http://mirror.csit.fsu.edu/pub/CPAN/
1528\& ftp://mirror.csit.fsu.edu/pub/CPAN/
1529\& http://cpan.mirrors.nks.net/
1530.Ve
1531.IP "Illinois" 4
1532.IX Item "Illinois"
1533.Vb 2
1534\& http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1535\& ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1536.Ve
1537.IP "Indiana" 4
1538.IX Item "Indiana"
1539.Vb 8
1540\& ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1541\& http://cpan.netnitco.net/
1542\& ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1543\& http://archive.progeny.com/CPAN/
1544\& ftp://archive.progeny.com/CPAN/
1545\& ftp://cpan.in-span.net/
1546\& http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1547\& ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1548.Ve
1549.IP "Kentucky" 4
1550.IX Item "Kentucky"
1551.Vb 2
1552\& http://cpan.uky.edu/
1553\& ftp://cpan.uky.edu/pub/CPAN/
1554.Ve
1555.IP "Massachusetts" 4
1556.IX Item "Massachusetts"
1557.Vb 3
1558\& ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1559\& http://cpan.mirrors.netnumina.com/
1560\& ftp://mirrors.netnumina.com/cpan/
1561.Ve
1562.IP "Michigan" 4
1563.IX Item "Michigan"
1564.Vb 1
1565\& ftp://cpan.cse.msu.edu/
1566.Ve
1567.IP "New Jersey" 4
1568.IX Item "New Jersey"
1569.Vb 3
1570\& ftp://ftp.cpanel.net/pub/CPAN/
1571\& http://cpan.teleglobe.net/
1572\& ftp://cpan.teleglobe.net/pub/CPAN
1573.Ve
1574.IP "New York" 4
1575.IX Item "New York"
1576.Vb 8
1577\& ftp://ftp.exobit.org/pub/perl/CPAN
1578\& http://cpan.belfry.net/
1579\& http://cpan.thepirtgroup.com/
1580\& ftp://cpan.thepirtgroup.com/
1581\& ftp://ftp.stealth.net/pub/CPAN/
1582\& http://www.rge.com/pub/languages/perl/
1583\& ftp://ftp.rge.com/pub/languages/perl/
1584\& ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
1585.Ve
1586.IP "North Carolina" 4
1587.IX Item "North Carolina"
1588.Vb 1
1589\& ftp://ftp.duke.edu/pub/perl/
1590.Ve
1591.IP "Ohio" 4
1592.IX Item "Ohio"
1593.Vb 1
1594\& ftp://ftp.loaded.net/pub/CPAN/
1595.Ve
1596.IP "Oklahoma" 4
1597.IX Item "Oklahoma"
1598.Vb 1
1599\& ftp://ftp.ou.edu/mirrors/CPAN/
1600.Ve
1601.IP "Oregon" 4
1602.IX Item "Oregon"
1603.Vb 1
1604\& ftp://ftp.orst.edu/pub/CPAN
1605.Ve
1606.IP "Pennsylvania" 4
1607.IX Item "Pennsylvania"
1608.Vb 7
1609\& http://ftp.epix.net/CPAN/
1610\& ftp://ftp.epix.net/pub/languages/perl/
1611\& http://mirrors.phenominet.com/pub/CPAN/
1612\& ftp://mirrors.phenominet.com/pub/CPAN/
1613\& http://cpan.pair.com/
1614\& ftp://cpan.pair.com/pub/CPAN/
1615\& ftp://carroll.cac.psu.edu/pub/CPAN/
1616.Ve
1617.IP "Tennessee" 4
1618.IX Item "Tennessee"
1619.Vb 1
1620\& ftp://ftp.sunsite.utk.edu/pub/CPAN/
1621.Ve
1622.IP "Texas" 4
1623.IX Item "Texas"
1624.Vb 2
1625\& http://ftp.sedl.org/pub/mirrors/CPAN/
1626\& ftp://mirror.telentente.com/pub/CPAN
1627.Ve
1628.IP "Utah" 4
1629.IX Item "Utah"
1630.Vb 1
1631\& ftp://mirror.xmission.com/CPAN/
1632.Ve
1633.IP "Virginia" 4
1634.IX Item "Virginia"
1635.Vb 8
1636\& http://mirrors.rcn.net/pub/lang/CPAN/
1637\& ftp://mirrors.rcn.net/pub/lang/CPAN/
1638\& http://perl.secsup.org/
1639\& ftp://perl.secsup.org/pub/perl/
1640\& http://mirrors.phihost.com/CPAN/
1641\& ftp://mirrors.phihost.com/CPAN/
1642\& ftp://ruff.cs.jmu.edu/pub/CPAN/
1643\& http://perl.Liquidation.com/CPAN/
1644.Ve
1645.IP "ashington" 4
1646.IX Item "ashington"
1647.Vb 5
1648\& http://cpan.llarian.net/
1649\& ftp://cpan.llarian.net/pub/CPAN/
1650\& http://cpan.mirrorcentral.com/
1651\& ftp://ftp.mirrorcentral.com/pub/CPAN/
1652\& ftp://ftp-mirror.internap.com/pub/CPAN/
1653.Ve
1654.IP "Wisconsin" 4
1655.IX Item "Wisconsin"
1656.Vb 2
1657\& http://mirror.sit.wisc.edu/pub/CPAN/
1658\& ftp://mirror.sit.wisc.edu/pub/CPAN/
1659.Ve
1660.Sh "Oceania"
1661.IX Subsection "Oceania"
1662.IP "Australia" 4
1663.IX Item "Australia"
1664.Vb 4
1665\& http://ftp.planetmirror.com/pub/CPAN/
1666\& ftp://ftp.planetmirror.com/pub/CPAN/
1667\& ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
1668\& ftp://cpan.topend.com.au/pub/CPAN/
1669.Ve
1670.IP "New Zealand" 4
1671.IX Item "New Zealand"
1672.Vb 2
1673\& ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
1674\& http://cpan.soa.co.nz/CPAN/
1675.Ve
1676.Sh "South America"
1677.IX Subsection "South America"
1678.IP "Argentina" 4
1679.IX Item "Argentina"
1680.Vb 3
1681\& ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
1682\& http://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
1683\& ftp://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
1684.Ve
1685.IP "Brazil" 4
1686.IX Item "Brazil"
1687.Vb 2
1688\& ftp://cpan.pop-mg.com.br/pub/CPAN/
1689\& ftp://ftp.matrix.com.br/pub/perl/CPAN/
1690.Ve
1691.IP "Chile" 4
1692.IX Item "Chile"
1693.Vb 2
1694\& http://cpan.netglobalis.net/
1695\& ftp://cpan.netglobalis.net/pub/CPAN/
1696.Ve
1697.Sh "\s-1RSYNC\s0 Mirrors"
1698.IX Subsection "RSYNC Mirrors"
1699.Vb 25
1700\& ftp.fcaglp.unlp.edu.ar::CPAN
1701\& cpan.mirror.smartworker.org::CPAN
1702\& theoryx5.uwinnipeg.ca::CPAN
1703\& ftp.shellhung.org::CPAN
1704\& ftp.funet.fi::CPAN
1705\& ftp.u-paris10.fr::CPAN
1706\& mir1.ovh.net::CPAN
1707\& ftp.gwdg.de::FTP/languages/perl/CPAN/
1708\& ftp.leo.org::CPAN
1709\& CPAN.piksi.itb.ac.id::CPAN
1710\& ftp.cbn.net.id::CPAN
1711\& ftp.iglu.org.il::CPAN
1712\& gusp.dyndns.org::cpan
1713\& ftp.kddlabs.co.jp::cpan
1714\& ftp.ayamura.org::pub/CPAN/
1715\& mirror.averse.net::cpan
1716\& cpan.teleglobe.net::CPAN
1717\& ftp.sedl.org::cpan
1718\& archive.progeny.com::CPAN
1719\& cpan.teleglobe.net::CPAN
1720\& ftp.lug.udel.edu::cpan
1721\& mirrors.kernel.org::mirrors/CPAN
1722\& mirrors.phenominet.com::CPAN
1723\& mirror.csit.fsu.edu::CPAN
1724\& csociety-ftp.ecn.purdue.edu::CPAN
1725.Ve
1726.PP
1727For an up-to-date listing of \s-1CPAN\s0 sites,
1728see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
1729.SH "Modules: Creation, Use, and Abuse"
1730.IX Header "Modules: Creation, Use, and Abuse"
1731(The following section is borrowed directly from Tim Bunce's modules
1732file, available at your nearest \s-1CPAN\s0 site.)
1733.PP
1734Perl implements a class using a package, but the presence of a
1735package doesn't imply the presence of a class. A package is just a
1736namespace. A class is a package that provides subroutines that can be
1737used as methods. A method is just a subroutine that expects, as its
1738first argument, either the name of a package (for \*(L"static\*(R" methods),
1739or a reference to something (for \*(L"virtual\*(R" methods).
1740.PP
1741A module is a file that (by convention) provides a class of the same
1742name (sans the .pm), plus an import method in that class that can be
1743called to fetch exported symbols. This module may implement some of
1744its methods by loading dynamic C or \*(C+ objects, but that should be
1745totally transparent to the user of the module. Likewise, the module
1746might set up an \s-1AUTOLOAD\s0 function to slurp in subroutine definitions on
1747demand, but this is also transparent. Only the \fI.pm\fR file is required to
1748exist. See perlsub, perltoot, and AutoLoader for details about
1749the \s-1AUTOLOAD\s0 mechanism.
1750.Sh "Guidelines for Module Creation"
1751.IX Subsection "Guidelines for Module Creation"
1752.IP "\(bu" 4
1753Do similar modules already exist in some form?
1754.Sp
1755If so, please try to reuse the existing modules either in whole or
1756by inheriting useful features into a new class. If this is not
1757practical try to get together with the module authors to work on
1758extending or enhancing the functionality of the existing modules.
1759A perfect example is the plethora of packages in perl4 for dealing
1760with command line options.
1761.Sp
1762If you are writing a module to expand an already existing set of
1763modules, please coordinate with the author of the package. It
1764helps if you follow the same naming scheme and module interaction
1765scheme as the original author.
1766.IP "\(bu" 4
1767Try to design the new module to be easy to extend and reuse.
1768.Sp
1769Try to \f(CW\*(C`use warnings;\*(C'\fR (or \f(CW\*(C`use warnings qw(...);\*(C'\fR).
1770Remember that you can add \f(CW\*(C`no warnings qw(...);\*(C'\fR to individual blocks
1771of code that need less warnings.
1772.Sp
1773Use blessed references. Use the two argument form of bless to bless
1774into the class name given as the first parameter of the constructor,
1775e.g.,:
1776.Sp
1777.Vb 4
1778\& sub new {
1779\& my $class = shift;
1780\& return bless {}, $class;
1781\& }
1782.Ve
1783.Sp
1784or even this if you'd like it to be used as either a static
1785or a virtual method.
1786.Sp
1787.Vb 5
1788\& sub new {
1789\& my $self = shift;
1790\& my $class = ref($self) || $self;
1791\& return bless {}, $class;
1792\& }
1793.Ve
1794.Sp
1795Pass arrays as references so more parameters can be added later
1796(it's also faster). Convert functions into methods where
1797appropriate. Split large methods into smaller more flexible ones.
1798Inherit methods from other modules if appropriate.
1799.Sp
1800Avoid class name tests like: \f(CW\*(C`die "Invalid" unless ref $ref eq 'FOO'\*(C'\fR.
1801Generally you can delete the \f(CW\*(C`eq 'FOO'\*(C'\fR part with no harm at all.
1802Let the objects look after themselves! Generally, avoid hard-wired
1803class names as far as possible.
1804.Sp
1805Avoid \f(CW\*(C`$r\->Class::func()\*(C'\fR where using \f(CW\*(C`@ISA=qw(... Class ...)\*(C'\fR and
1806\&\f(CW\*(C`$r\->func()\*(C'\fR would work (see perlbot for more details).
1807.Sp
1808Use autosplit so little used or newly added functions won't be a
1809burden to programs that don't use them. Add test functions to
1810the module after _\|_END_\|_ either using AutoSplit or by saying:
1811.Sp
1812.Vb 1
1813\& eval join('',<main::DATA>) || die $@ unless caller();
1814.Ve
1815.Sp
1816Does your module pass the 'empty subclass' test? If you say
1817\&\f(CW\*(C`@SUBCLASS::ISA = qw(YOURCLASS);\*(C'\fR your applications should be able
1818to use \s-1SUBCLASS\s0 in exactly the same way as \s-1YOURCLASS\s0. For example,
1819does your application still work if you change: \f(CW\*(C`$obj = new YOURCLASS;\*(C'\fR
1820into: \f(CW\*(C`$obj = new SUBCLASS;\*(C'\fR ?
1821.Sp
1822Avoid keeping any state information in your packages. It makes it
1823difficult for multiple other packages to use yours. Keep state
1824information in objects.
1825.Sp
1826Always use \fB\-w\fR.
1827.Sp
1828Try to \f(CW\*(C`use strict;\*(C'\fR (or \f(CW\*(C`use strict qw(...);\*(C'\fR).
1829Remember that you can add \f(CW\*(C`no strict qw(...);\*(C'\fR to individual blocks
1830of code that need less strictness.
1831.Sp
1832Always use \fB\-w\fR.
1833.Sp
1834Follow the guidelines in the \fIperlstyle\fR\|(1) manual.
1835.Sp
1836Always use \fB\-w\fR.
1837.IP "\(bu" 4
1838Some simple style guidelines
1839.Sp
1840The perlstyle manual supplied with Perl has many helpful points.
1841.Sp
1842Coding style is a matter of personal taste. Many people evolve their
1843style over several years as they learn what helps them write and
1844maintain good code. Here's one set of assorted suggestions that
1845seem to be widely used by experienced developers:
1846.Sp
1847Use underscores to separate words. It is generally easier to read
1848\&\f(CW$var_names_like_this\fR than \f(CW$VarNamesLikeThis\fR, especially for
1849non-native speakers of English. It's also a simple rule that works
1850consistently with \s-1VAR_NAMES_LIKE_THIS\s0.
1851.Sp
1852Package/Module names are an exception to this rule. Perl informally
1853reserves lowercase module names for 'pragma' modules like integer
1854and strict. Other modules normally begin with a capital letter and
1855use mixed case with no underscores (need to be short and portable).
1856.Sp
1857You may find it helpful to use letter case to indicate the scope
1858or nature of a variable. For example:
1859.Sp
1860.Vb 3
1861\& $ALL_CAPS_HERE constants only (beware clashes with Perl vars)
1862\& $Some_Caps_Here package-wide global/static
1863\& $no_caps_here function scope my() or local() variables
1864.Ve
1865.Sp
1866Function and method names seem to work best as all lowercase.
1867e.g., \f(CW\*(C`$obj\->as_string()\*(C'\fR.
1868.Sp
1869You can use a leading underscore to indicate that a variable or
1870function should not be used outside the package that defined it.
1871.IP "\(bu" 4
1872Select what to export.
1873.Sp
1874Do \s-1NOT\s0 export method names!
1875.Sp
1876Do \s-1NOT\s0 export anything else by default without a good reason!
1877.Sp
1878Exports pollute the namespace of the module user. If you must
1879export try to use \f(CW@EXPORT_OK\fR in preference to \f(CW@EXPORT\fR and avoid
1880short or common names to reduce the risk of name clashes.
1881.Sp
1882Generally anything not exported is still accessible from outside the
1883module using the ModuleName::item_name (or \f(CW\*(C`$blessed_ref\->method\*(C'\fR)
1884syntax. By convention you can use a leading underscore on names to
1885indicate informally that they are 'internal' and not for public use.
1886.Sp
1887(It is actually possible to get private functions by saying:
1888\&\f(CW\*(C`my $subref = sub { ... }; &$subref;\*(C'\fR. But there's no way to call that
1889directly as a method, because a method must have a name in the symbol
1890table.)
1891.Sp
1892As a general rule, if the module is trying to be object oriented
1893then export nothing. If it's just a collection of functions then
1894\&\f(CW@EXPORT_OK\fR anything but use \f(CW@EXPORT\fR with caution.
1895.IP "\(bu" 4
1896Select a name for the module.
1897.Sp
1898This name should be as descriptive, accurate, and complete as
1899possible. Avoid any risk of ambiguity. Always try to use two or
1900more whole words. Generally the name should reflect what is special
1901about what the module does rather than how it does it. Please use
1902nested module names to group informally or categorize a module.
1903There should be a very good reason for a module not to have a nested name.
1904Module names should begin with a capital letter.
1905.Sp
1906Having 57 modules all called Sort will not make life easy for anyone
1907(though having 23 called Sort::Quick is only marginally better :\-).
1908Imagine someone trying to install your module alongside many others.
1909If in any doubt ask for suggestions in comp.lang.perl.misc.
1910.Sp
1911If you are developing a suite of related modules/classes it's good
1912practice to use nested classes with a common prefix as this will
1913avoid namespace clashes. For example: Xyz::Control, Xyz::View,
1914Xyz::Model etc. Use the modules in this list as a naming guide.
1915.Sp
1916If adding a new module to a set, follow the original author's
1917standards for naming modules and the interface to methods in
1918those modules.
1919.Sp
1920If developing modules for private internal or project specific use,
1921that will never be released to the public, then you should ensure
1922that their names will not clash with any future public module. You
1923can do this either by using the reserved Local::* category or by
1924using a category name that includes an underscore like Foo_Corp::*.
1925.Sp
1926To be portable each component of a module name should be limited to
192711 characters. If it might be used on MS-DOS then try to ensure each is
1928unique in the first 8 characters. Nested modules make this easier.
1929.IP "\(bu" 4
1930Have you got it right?
1931.Sp
1932How do you know that you've made the right decisions? Have you
1933picked an interface design that will cause problems later? Have
1934you picked the most appropriate name? Do you have any questions?
1935.Sp
1936The best way to know for sure, and pick up many helpful suggestions,
1937is to ask someone who knows. Comp.lang.perl.misc is read by just about
1938all the people who develop modules and it's the best place to ask.
1939.Sp
1940All you need to do is post a short summary of the module, its
1941purpose and interfaces. A few lines on each of the main methods is
1942probably enough. (If you post the whole module it might be ignored
1943by busy people \- generally the very people you want to read it!)
1944.Sp
1945Don't worry about posting if you can't say when the module will be
1946ready \- just say so in the message. It might be worth inviting
1947others to help you, they may be able to complete it for you!
1948.IP "\(bu" 4
1949\&\s-1README\s0 and other Additional Files.
1950.Sp
1951It's well known that software developers usually fully document the
1952software they write. If, however, the world is in urgent need of
1953your software and there is not enough time to write the full
1954documentation please at least provide a \s-1README\s0 file containing:
1955.RS 4
1956.IP "\(bu" 10
1957A description of the module/package/extension etc.
1958.IP "\(bu" 10
1959A copyright notice \- see below.
1960.IP "\(bu" 10
1961Prerequisites \- what else you may need to have.
1962.IP "\(bu" 10
1963How to build it \- possible changes to Makefile.PL etc.
1964.IP "\(bu" 10
1965How to install it.
1966.IP "\(bu" 10
1967Recent changes in this release, especially incompatibilities
1968.IP "\(bu" 10
1969Changes / enhancements you plan to make in the future.
1970.RE
1971.RS 4
1972.Sp
1973If the \s-1README\s0 file seems to be getting too large you may wish to
1974split out some of the sections into separate files: \s-1INSTALL\s0,
1975Copying, ToDo etc.
1976.IP "\(bu" 4
1977Adding a Copyright Notice.
1978.Sp
1979How you choose to license your work is a personal decision.
1980The general mechanism is to assert your Copyright and then make
1981a declaration of how others may copy/use/modify your work.
1982.Sp
1983Perl, for example, is supplied with two types of licence: The \s-1GNU\s0
1984\&\s-1GPL\s0 and The Artistic Licence (see the files \s-1README\s0, Copying, and
1985Artistic). Larry has good reasons for \s-1NOT\s0 just using the \s-1GNU\s0 \s-1GPL\s0.
1986.Sp
1987My personal recommendation, out of respect for Larry, Perl, and the
1988Perl community at large is to state something simply like:
1989.Sp
1990.Vb 3
1991\& Copyright (c) 1995 Your Name. All rights reserved.
1992\& This program is free software; you can redistribute it and/or
1993\& modify it under the same terms as Perl itself.
1994.Ve
1995.Sp
1996This statement should at least appear in the \s-1README\s0 file. You may
1997also wish to include it in a Copying file and your source files.
1998Remember to include the other words in addition to the Copyright.
1999.IP "\(bu" 4
2000Give the module a version/issue/release number.
2001.Sp
2002To be fully compatible with the Exporter and MakeMaker modules you
2003should store your module's version number in a non-my package
2004variable called \f(CW$VERSION\fR. This should be a floating point
2005number with at least two digits after the decimal (i.e., hundredths,
2006e.g, \f(CW\*(C`$VERSION = "0.01"\*(C'\fR). Don't use a \*(L"1.3.2\*(R" style version.
2007See Exporter for details.
2008.Sp
2009It may be handy to add a function or method to retrieve the number.
2010Use the number in announcements and archive file names when
2011releasing the module (ModuleName\-1.02.tar.Z).
2012See perldoc ExtUtils::MakeMaker.pm for details.
2013.IP "\(bu" 4
2014How to release and distribute a module.
2015.Sp
2016It's good idea to post an announcement of the availability of your
2017module (or the module itself if small) to the comp.lang.perl.announce
2018Usenet newsgroup. This will at least ensure very wide once-off
2019distribution.
2020.Sp
2021If possible, register the module with \s-1CPAN\s0. You should
2022include details of its location in your announcement.
2023.Sp
2024Some notes about ftp archives: Please use a long descriptive file
2025name that includes the version number. Most incoming directories
2026will not be readable/listable, i.e., you won't be able to see your
2027file after uploading it. Remember to send your email notification
2028message as soon as possible after uploading else your file may get
2029deleted automatically. Allow time for the file to be processed
2030and/or check the file has been processed before announcing its
2031location.
2032.Sp
2033\&\s-1FTP\s0 Archives for Perl Modules:
2034.Sp
2035Follow the instructions and links on:
2036.Sp
2037.Vb 2
2038\& http://www.cpan.org/modules/00modlist.long.html
2039\& http://www.cpan.org/modules/04pause.html
2040.Ve
2041.Sp
2042or upload to one of these sites:
2043.Sp
2044.Vb 2
2045\& https://pause.kbx.de/pause/
2046\& http://pause.perl.org/pause/
2047.Ve
2048.Sp
2049and notify <modules@perl.org>.
2050.Sp
2051By using the \s-1WWW\s0 interface you can ask the Upload Server to mirror
2052your modules from your ftp or \s-1WWW\s0 site into your own directory on
2053\&\s-1CPAN\s0!
2054.Sp
2055Please remember to send me an updated entry for the Module list!
2056.IP "\(bu" 4
2057Take care when changing a released module.
2058.Sp
2059Always strive to remain compatible with previous released versions.
2060Otherwise try to add a mechanism to revert to the
2061old behavior if people rely on it. Document incompatible changes.
2062.RE
2063.RS 4
2064.RE
2065.Sh "Guidelines for Converting Perl 4 Library Scripts into Modules"
2066.IX Subsection "Guidelines for Converting Perl 4 Library Scripts into Modules"
2067.IP "\(bu" 4
2068There is no requirement to convert anything.
2069.Sp
2070If it ain't broke, don't fix it! Perl 4 library scripts should
2071continue to work with no problems. You may need to make some minor
2072changes (like escaping non-array @'s in double quoted strings) but
2073there is no need to convert a .pl file into a Module for just that.
2074.IP "\(bu" 4
2075Consider the implications.
2076.Sp
2077All Perl applications that make use of the script will need to
2078be changed (slightly) if the script is converted into a module. Is
2079it worth it unless you plan to make other changes at the same time?
2080.IP "\(bu" 4
2081Make the most of the opportunity.
2082.Sp
2083If you are going to convert the script to a module you can use the
2084opportunity to redesign the interface. The guidelines for module
2085creation above include many of the issues you should consider.
2086.IP "\(bu" 4
2087The pl2pm utility will get you started.
2088.Sp
2089This utility will read *.pl files (given as parameters) and write
2090corresponding *.pm files. The pl2pm utilities does the following:
2091.RS 4
2092.IP "\(bu" 10
2093Adds the standard Module prologue lines
2094.IP "\(bu" 10
2095Converts package specifiers from ' to ::
2096.IP "\(bu" 10
2097Converts die(...) to croak(...)
2098.IP "\(bu" 10
2099Several other minor changes
2100.RE
2101.RS 4
2102.Sp
2103Being a mechanical process pl2pm is not bullet proof. The converted
2104code will need careful checking, especially any package statements.
2105Don't delete the original .pl file till the new .pm one works!
2106.RE
2107.Sh "Guidelines for Reusing Application Code"
2108.IX Subsection "Guidelines for Reusing Application Code"
2109.IP "\(bu" 4
2110Complete applications rarely belong in the Perl Module Library.
2111.IP "\(bu" 4
2112Many applications contain some Perl code that could be reused.
2113.Sp
2114Help save the world! Share your code in a form that makes it easy
2115to reuse.
2116.IP "\(bu" 4
2117Break-out the reusable code into one or more separate module files.
2118.IP "\(bu" 4
2119Take the opportunity to reconsider and redesign the interfaces.
2120.IP "\(bu" 4
2121In some cases the 'application' can then be reduced to a small
2122.Sp
2123fragment of code built on top of the reusable modules. In these cases
2124the application could invoked as:
2125.Sp
2126.Vb 3
2127\& % perl -e 'use Module::Name; method(@ARGV)' ...
2128\&or
2129\& % perl -mModule::Name ... (in perl5.002 or higher)
2130.Ve
2131.SH "NOTE"
2132.IX Header "NOTE"
2133Perl does not enforce private and public parts of its modules as you may
2134have been used to in other languages like \*(C+, Ada, or Modula\-17. Perl
2135doesn't have an infatuation with enforced privacy. It would prefer
2136that you stayed out of its living room because you weren't invited, not
2137because it has a shotgun.
2138.PP
2139The module and its user have a contract, part of which is common law,
2140and part of which is \*(L"written\*(R". Part of the common law contract is
2141that a module doesn't pollute any namespace it wasn't asked to. The
2142written contract for the module (A.K.A. documentation) may make other
2143provisions. But then you know when you \f(CW\*(C`use RedefineTheWorld\*(C'\fR that
2144you're redefining the world and willing to take the consequences.