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