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