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