2 Generated by perlmodlib.PL -- DO NOT EDIT!
6 perlmodlib - constructing new Perl modules and finding existing ones
10 =head1 THE PERL MODULE LIBRARY
12 Many modules are included the Perl distribution. These are described
13 below, and all end in F<.pm>. You may discover compiled library
14 file (usually ending in F<.so>) or small pieces of modules to be
15 autoloaded (ending in F<.al>); these were automatically generated
16 by the installation process. You may also discover files in the
17 library directory that end in either F<.pl> or F<.ph>. These are
18 old libraries supplied so that old programs that use them still
19 run. The F<.pl> files will all eventually be converted into standard
20 modules, and the F<.ph> files made by B<h2ph> will probably end up
21 as extension modules made by B<h2xs>. (Some F<.ph> values may
22 already be available through the POSIX, Errno, or Fcntl modules.)
23 The B<pl2pm> file in the distribution may help in your conversion,
24 but it's just a mechanical process and therefore far from bulletproof.
26 =head2 Pragmatic Modules
28 They work somewhat like compiler directives (pragmata) in that they
29 tend to affect the compilation of your program, and thus will usually
30 work well only when used within a C<use>, or C<no>. Most of these
31 are lexically scoped, so an inner BLOCK may countermand them
38 which lasts until the end of that BLOCK.
40 Some pragmas are lexically scoped--typically those that affect the
41 C<$^H> hints variable. Others affect the current package instead,
42 like C<use vars> and C<use subs>, which allow you to predeclare a
43 variables or subroutines within a particular I<file> rather than
44 just a block. Such declarations are effective for the entire file
45 for which they were declared. You cannot rescind them with C<no
48 The following pragmas are defined (and have their own documentation).
54 Get/set subroutine or variable attributes
58 Set/get attributes of a subroutine (deprecated)
62 Postpone load of modules until a function is used
66 Establish IS-A relationship with base class at compile time
70 Transparent big integer support for Perl
74 Transparent BigNumber support for Perl
78 Transparent BigNumber/BigRational support for Perl
82 Use MakeMaker's uninstalled version of a package
86 Force byte semantics rather than character semantics
90 Define character names for C<\N{named}> string literal escapes
98 Perl compiler pragma to force verbose warning diagnostics
102 Allows you to write your script in non-ascii or non-utf8
106 Compile-time class fields
110 Control the filetest permission operators
114 C<use> a Perl module if a condition holds
118 Use integer arithmetic instead of floating point
122 Request less of something from the compiler
126 Use and avoid POSIX locales for built-in operations
130 Set default disciplines for input and output
134 Restrict unsafe operations when compiling
138 Package for overloading perl operations
142 Alter regular expression behaviour
146 Enable simple signal handling
150 Control sort() behaviour
154 Restrict unsafe constructs
162 Perl extension allowing use of interpreter based threads from perl
166 Enable/disable UTF-8 (or UTF-EBCDIC) in source code
170 Predeclare global variable names (obsolete)
174 Control VMS-specific language features
178 Control optional warnings
180 =item warnings::register
182 Warnings import function
186 =head2 Standard Modules
188 Standard, bundled modules are all expected to behave in a well-defined
189 manner with respect to namespace pollution because they use the
190 Exporter module. See their own documentation for details.
196 Provide framework for multiple DBMs
198 =item Attribute::Handlers
200 Simpler definition of attribute handlers
204 Load subroutines only on demand
208 Split a package for autoloading
216 Autogenerated data about Perl ops, used to generate bytecode
220 Assemble Perl bytecode
228 Perl compiler's bytecode backend
232 Perl compiler's C backend
236 Perl compiler's optimized C translation backend
240 Walk Perl syntax tree, printing concise info about ops
244 Walk Perl syntax tree, printing debug info about ops
248 Perl compiler backend to produce perl code
250 =item B::Disassembler
252 Disassemble Perl bytecode
260 Show lexical variables used in functions or files
264 Helper module for CC backend
268 Show what stashes are loaded
272 Walk Perl syntax tree, printing terse info about ops
276 Generates cross reference reports for Perl programs
280 Benchmark running times of Perl code
284 Load byte compiled perl code
288 Simple Common Gateway Interface Class
292 Backward compatibility module for CGI.pm
296 CGI routines for writing to the HTTPD (or other) error log
300 Interface to Netscape Cookies
304 CGI Interface for Fast CGI
308 Module to produce nicely formatted HTML code
312 Simple Interface to Server Push
316 Backward compatibility module for defunct CGI::Switch
320 Internal utilities used by CGI module
324 Query, download and build perl modules from CPAN sites
326 =item CPAN::FirstTime
328 Utility for CPAN::Config file Initialization
332 Wrapper around CPAN.pm without using any XS module
336 Warn of errors (from perspective of caller)
340 No user serviceable parts inside
344 Report the search path for a class's ISA tree
348 Declare struct-like datatypes as Perl classes
352 Access Perl configuration information
356 Get pathname of current working directory
360 Programmatic interface to the Perl debugging API (draft, subject to
364 Perl5 access to Berkeley DB version 1.x
366 =item Devel::SelfStubber
368 Generate stubs for a SelfLoading module
372 Modules that calculate message digests
376 Supply object methods for directory handles
380 Provides screen dump of Perl data.
388 Use nice English (or awk) names for ugly punctuation variables
392 Perl module that imports environment variables as scalars or arrays
396 System errno constants
400 Implements default import method for modules
402 =item Exporter::Heavy
406 =item ExtUtils::Command
408 Utilities to replace common UNIX commands in Makefiles etc.
410 =item ExtUtils::Command::MM
412 Commands for the MM's to use in Makefiles
414 =item ExtUtils::Constant
416 Generate XS code to import C header constants
418 =item ExtUtils::Embed
420 Utilities for embedding Perl in C/C++ applications
422 =item ExtUtils::Install
424 Install files from here to there
426 =item ExtUtils::Installed
428 Inventory management of installed modules
430 =item ExtUtils::Liblist
432 Determine libraries to use and how to use them
436 OS adjusted ExtUtils::MakeMaker subclass
438 =item ExtUtils::MM_Any
440 Platform agnostic MM methods
442 =item ExtUtils::MM_BeOS
444 Methods to override UN*X behaviour in ExtUtils::MakeMaker
446 =item ExtUtils::MM_Cygwin
448 Methods to override UN*X behaviour in ExtUtils::MakeMaker
450 =item ExtUtils::MM_DOS
452 DOS specific subclass of ExtUtils::MM_Unix
454 =item ExtUtils::MM_MacOS
456 Methods to override UN*X behaviour in ExtUtils::MakeMaker
458 =item ExtUtils::MM_NW5
460 Methods to override UN*X behaviour in ExtUtils::MakeMaker
462 =item ExtUtils::MM_OS2
464 Methods to override UN*X behaviour in ExtUtils::MakeMaker
466 =item ExtUtils::MM_UWIN
468 U/WIN specific subclass of ExtUtils::MM_Unix
470 =item ExtUtils::MM_Unix
472 Methods used by ExtUtils::MakeMaker
474 =item ExtUtils::MM_VMS
476 Methods to override UN*X behaviour in ExtUtils::MakeMaker
478 =item ExtUtils::MM_Win32
480 Methods to override UN*X behaviour in ExtUtils::MakeMaker
482 =item ExtUtils::MM_Win95
484 Method to customize MakeMaker for Win9X
488 ExtUtils::MakeMaker subclass for customization
490 =item ExtUtils::MakeMaker
492 Create an extension Makefile
494 =item ExtUtils::Manifest
496 Utilities to write and check a MANIFEST file
498 =item ExtUtils::Mkbootstrap
500 Make a bootstrap file for use by DynaLoader
502 =item ExtUtils::Mksymlists
504 Write linker options files for dynamic extension
506 =item ExtUtils::Packlist
508 Manage .packlist files
510 =item ExtUtils::testlib
512 Add blib/* directories to @INC
516 Replace functions with equivalents which succeed or die
520 Load the C Fcntl.h defines
524 Split a pathname into pieces
526 =item File::CheckTree
528 Run many filetest checks on a tree
532 Compare files or filehandles
536 Copy files or filehandles
540 DOS like globbing and then some
544 Traverse a directory tree.
548 Create or remove directory trees
552 Portably perform operations on file names
554 =item File::Spec::Cygwin
556 Methods for Cygwin file specs
558 =item File::Spec::Epoc
560 Methods for Epoc file specs
562 =item File::Spec::Functions
564 Portably perform operations on file names
566 =item File::Spec::Mac
568 File::Spec for Mac OS (Classic)
570 =item File::Spec::NW5
572 Methods for NW5 file specs
574 =item File::Spec::OS2
576 Methods for OS/2 file specs
578 =item File::Spec::Unix
580 File::Spec for Unix, base for other File::Spec modules
582 =item File::Spec::VMS
584 Methods for VMS file specs
586 =item File::Spec::Win32
588 Methods for Win32 file specs
592 Return name and handle of a temporary file safely
596 By-name interface to Perl's built-in stat() functions
600 Keep more files open than the system permits
604 Supply object methods for filehandles
608 Simplified source filtering
612 Locate directory of original perl script
616 Extended processing of command line options
620 Process single-character switches with switch clustering
624 A selection of general-utility hash subroutines
628 Compare 8-bit scalar data according to the current locale
632 Functions for dealing with RFC3066-style language tags
634 =item I18N::LangTags::List
636 Tags and names for human languages
640 Load various IO modules
644 Open a process for both reading and writing
648 Open a process for reading, writing, and error handling
650 =item Locale::Constants
652 Constants for Locale codes
654 =item Locale::Country
656 ISO codes for country identification (ISO 3166)
658 =item Locale::Currency
660 ISO three letter codes for currency identification (ISO 4217)
662 =item Locale::Language
664 ISO two letter codes for language identification (ISO 639)
666 =item Locale::Maketext
668 Framework for localization
670 =item Locale::Maketext::TPJ13
672 Article about software localization
676 ISO codes for script identification (ISO 15924)
680 Arbitrary size floating point math package
684 Arbitrary size integer math package
686 =item Math::BigInt::Calc
688 Pure Perl module to support Math::BigInt
692 Arbitrarily big rationals
696 Complex numbers and associated mathematical functions
700 Trigonometric functions
704 Make functions faster by trading space for time
706 =item Memoize::AnyDBM_File
708 Glue to provide EXISTS for AnyDBM_File for Storable use
710 =item Memoize::Expire
712 Plug-in module for automatic expiration of memoized values
714 =item Memoize::ExpireFile
716 Test for Memoize expiration semantics
718 =item Memoize::ExpireTest
720 Test for Memoize expiration semantics
722 =item Memoize::NDBM_File
724 Glue to provide EXISTS for NDBM_File for Storable use
726 =item Memoize::SDBM_File
728 Glue to provide EXISTS for SDBM_File for Storable use
730 =item Memoize::Storable
732 Store Memoized data in Storable database
736 Tied access to ndbm files
740 Provide a pseudo-class NEXT that allows method redispatch
744 Network Command class (as used by FTP, SMTP etc)
748 Local configuration data for libnet
752 Attempt to evaluate the current host's internet name and domain
764 OO interface to users netrc file
768 Post Office Protocol 3 Client class (RFC1939)
772 Check a remote host for reachability
776 Simple Mail Transfer Protocol Client
780 Time and daytime network client interface
784 By-name interface to Perl's built-in gethost*() functions
788 Libnet Frequently Asked Questions
792 By-name interface to Perl's built-in getnet*() functions
796 By-name interface to Perl's built-in getproto*() functions
800 By-name interface to Perl's built-in getserv*() functions
804 Generic interface to Perl Compiler backends
808 Tied access to odbm files
812 Disable named opcodes when compiling perl code
816 Perl interface to IEEE Std 1003.1
820 On demand loader for PerlIO layers and root of PerlIO::* name space
824 Check pod documents for syntax errors
828 Find POD documents in directory trees
832 Group Perl's functions a la perlfunc.pod
836 Module to convert pod files to HTML
838 =item Pod::InputObjects
840 Objects representing POD input paragraphs, commands, etc.
844 Convert Pod data to formatted Latex
848 Convert POD data to formatted *roff input
852 Parse an LE<lt>E<gt> formatting code in POD text
854 =item Pod::ParseUtils
856 Helpers for POD parsing and conversion
860 Base class for creating POD filters and translators
864 Perl extension for converting Pod to old style Pod.
868 Extract selected sections of POD from input
872 Convert POD data to formatted ASCII text
874 =item Pod::Text::Color
876 Convert POD data to formatted color ASCII text
878 =item Pod::Text::Overstrike
880 Convert POD data to formatted overstrike text
882 =item Pod::Text::Termcap
884 Convert POD data to ASCII text with format escapes
888 Print a usage message from embedded pod documentation
892 Tied access to sdbm files
896 Compile and execute code in restricted compartments
900 Search for key in dictionary file
904 Save and restore selected file handle
908 Load functions only on demand
912 Run shell commands transparently within perl
916 Load the C socket.h defines and structure manipulators
920 Persistence for Perl data structures
924 A switch statement for Perl
928 Manipulate Perl symbols and their names
930 =item Term::ANSIColor
932 Color screen output using ANSI escape sequences
936 Perl termcap interface
940 Perl word completion module
944 Perl interface to various C<readline> packages. If
948 Provides a simple framework for writing test scripts
952 Backend for building test libraries
956 Run perl standard test scripts with statistics
958 =item Test::Harness::Assert
962 =item Test::Harness::Iterator
964 Internal Test::Harness Iterator
966 =item Test::Harness::Straps
968 Detailed analysis of test results
972 Yet another framework for writing test scripts
976 Basic utilities for writing tests.
980 A tutorial about writing really basic tests
984 Create an abbreviation table from a list
988 Extract delimited text sequences from strings.
990 =item Text::ParseWords
992 Parse text into an array of tokens or array of arrays
996 Implementation of the Soundex Algorithm as Described by Knuth
1000 Expand and unexpand tabs per the unix expand(1) and unexpand(1)
1004 Line wrapping to form simple paragraphs
1008 Manipulate threads in Perl (for old code only)
1012 Thread-safe queues (for old code only)
1014 =item Thread::Semaphore
1016 Thread-safe semaphores (for old code only)
1020 Base class for tied arrays
1024 Access the lines of a disk file via a Perl array
1028 Base class definitions for tied handles
1032 Base class definitions for tied hashes
1036 Add data to hash when needed
1040 Use references as hash keys
1044 Base class definitions for tied scalars
1046 =item Tie::SubstrHash
1048 Fixed-table-size, fixed-key-length hashing
1052 Efficiently compute time from local and GMT time
1056 By-name interface to Perl's built-in gmtime() function
1058 =item Time::localtime
1060 By-name interface to Perl's built-in localtime() function
1064 Internal object used by Time::gmtime and Time::localtime
1068 Base class for ALL classes (blessed references)
1070 =item Unicode::Collate
1072 Unicode Collation Algorithm
1076 Unicode character database
1080 By-name interface to Perl's built-in getgr*() functions
1084 By-name interface to Perl's built-in getpw*() functions
1088 Interfaces to some Win32 API Functions
1092 To find out I<all> modules installed on your system, including
1093 those without documentation or outside the standard release,
1096 % find `perl -e 'print "@INC"'` -name '*.pm' -print
1098 They should all have their own documentation installed and accessible
1099 via your system man(1) command. If you do not have a B<find>
1100 program, you can use the Perl B<find2perl> program instead, which
1101 generates Perl code as output you can run through perl. If you
1102 have a B<man> program but it doesn't find your modules, you'll have
1103 to fix your manpath. See L<perl> for details. If you have no
1104 system B<man> command, you might try the B<perldoc> program.
1106 =head2 Extension Modules
1108 Extension modules are written in C (or a mix of Perl and C). They
1109 are usually dynamically loaded into Perl if and when you need them,
1110 but may also be linked in statically. Supported extension modules
1111 include Socket, Fcntl, and POSIX.
1113 Many popular C extension modules do not come bundled (at least, not
1114 completely) due to their sizes, volatility, or simply lack of time
1115 for adequate testing and configuration across the multitude of
1116 platforms on which Perl was beta-tested. You are encouraged to
1117 look for them on CPAN (described below), or using web search engines
1118 like Alta Vista or Deja News.
1122 CPAN stands for Comprehensive Perl Archive Network; it's a globally
1123 replicated trove of Perl materials, including documentation, style
1124 guides, tricks and traps, alternate ports to non-Unix systems and
1125 occasional binary distributions for these. Search engines for
1126 CPAN can be found at http://www.cpan.org/
1128 Most importantly, CPAN includes around a thousand unbundled modules,
1129 some of which require a C compiler to build. Major categories of
1136 Language Extensions and Documentation Tools
1144 Operating System Interfaces
1148 Networking, Device Control (modems) and InterProcess Communication
1152 Data Types and Data Type Utilities
1164 Interfaces to / Emulations of Other Programming Languages
1168 File Names, File Systems and File Locking (see also File Handles)
1172 String Processing, Language Text Processing, Parsing, and Searching
1176 Option, Argument, Parameter, and Configuration File Processing
1180 Internationalization and Locale
1184 Authentication, Security, and Encryption
1188 World Wide Web, HTML, HTTP, CGI, MIME
1192 Server and Daemon Utilities
1196 Archiving and Compression
1200 Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1204 Mail and Usenet News
1208 Control Flow Utilities (callbacks and exceptions etc)
1212 File Handle and Input/Output Stream Utilities
1216 Miscellaneous Modules
1220 Registered CPAN sites as of this writing include the following.
1221 You should try to choose one close to you:
1231 ftp://ftp.is.co.za/programming/perl/CPAN/
1232 ftp://ftp.mweb.co.za/pub/mirrors/cpan/
1233 ftp://ftp.saix.net/pub/CPAN/
1234 ftp://ftp.sun.ac.za/CPAN/CPAN/
1246 ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
1247 http://www2.linuxforum.net/mirror/CPAN/
1248 http://cpan.shellhung.org/
1249 ftp://ftp.shellhung.org/pub/CPAN
1255 http://cpan.in.freeos.com
1256 ftp://cpan.in.freeos.com/pub/CPAN/
1262 http://cpan.itb.web.id/
1263 ftp://mirrors.piksi.itb.ac.id/CPAN/
1264 http://CPAN.mweb.co.id/
1265 ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
1271 http://www.iglu.org.il:/pub/CPAN/
1272 ftp://ftp.iglu.org.il/pub/CPAN/
1273 http://cpan.lerner.co.il/
1274 http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1275 ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1281 ftp://ftp.u-aizu.ac.jp/pub/CPAN
1282 ftp://ftp.kddlabs.co.jp/CPAN/
1283 http://mirror.nucba.ac.jp/mirror/Perl/
1284 ftp://mirror.nucba.ac.jp/mirror/Perl/
1285 ftp://ftp.meisei-u.ac.jp/pub/CPAN/
1286 ftp://ftp.ayamura.org/pub/CPAN/
1287 ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1288 ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1289 ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1295 http://mirror.Mazic.org/pub/CPAN
1296 ftp://mirror.Mazic.org/pub/CPAN
1302 http://www.adzu.edu.ph/CPAN
1308 http://cpan.tomsk.ru
1309 ftp://cpan.tomsk.ru/pub/CPAN
1315 ftp://ftp.isu.net.sa/pub/CPAN/
1321 http://cpan.hjc.edu.sg
1327 http://CPAN.bora.net/
1328 ftp://ftp.bora.net/pub/CPAN/
1329 http://ftp.kornet.net/pub/CPAN/
1330 ftp://ftp.kornet.net/pub/CPAN/
1331 ftp://ftp.nuri.net/pub/CPAN/
1332 http://ftp.xgate.co.kr/cpan/
1333 ftp://ftp.xgate.co.kr/pub/mirror/CPAN
1339 ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
1340 ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1341 http://ftp.tku.edu.tw/pub/CPAN/
1342 ftp://ftp.tku.edu.tw/pub/CPAN/
1348 ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1352 =head2 Central America
1360 ftp://ftp.linux.co.cr/mirrors/CPAN/
1361 http://ftp.ucr.ac.cr/Unix/CPAN/
1362 ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1374 ftp://ftp.tuwien.ac.at/pub/CPAN/
1380 http://ftp.easynet.be/pub/CPAN/
1381 ftp://ftp.easynet.be/pub/CPAN/
1382 http://cpan.skynet.be
1383 ftp://ftp.skynet.be/pub/CPAN
1384 ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1390 http://cpan.lirex.net/
1391 ftp://ftp.lirex.net/pub/mirrors/CPAN
1397 ftp://ftp.linux.hr/pub/CPAN/
1403 http://ftp.fi.muni.cz/pub/CPAN/
1404 ftp://ftp.fi.muni.cz/pub/CPAN/
1405 ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1411 http://mirrors.sunsite.dk/cpan/
1412 ftp://sunsite.dk/mirrors/cpan/
1413 http://www.cpan.dk/CPAN/
1414 ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1420 ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1426 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1427 http://cpan.kpnqwest.fi/
1433 http://cpan.mirrors.easynet.fr/
1434 ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1435 ftp://ftp.club-internet.fr/pub/perl/CPAN/
1437 ftp://ftp.lip6.fr/pub/perl/CPAN/
1438 ftp://ftp.oleane.net/pub/mirrors/CPAN/
1439 ftp://ftp.pasteur.fr/pub/computing/CPAN/
1440 http://cpan.cict.fr/
1441 ftp://cpan.cict.fr/pub/CPAN/
1442 ftp://ftp.uvsq.fr/pub/perl/CPAN/
1448 ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
1449 ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1450 ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1451 ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1452 ftp://ftp.gigabell.net/pub/CPAN/
1453 http://pandemonium.tiscali.de/pub/CPAN/
1454 ftp://pandemonium.tiscali.de/pub/CPAN/
1455 http://ftp.gwdg.de/pub/languages/perl/CPAN/
1456 ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1457 ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1458 ftp://ftp.leo.org/pub/CPAN/
1459 http://cpan.noris.de/
1460 ftp://cpan.noris.de/pub/CPAN/
1461 ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1462 ftp://ftp.gmd.de/mirrors/CPAN/
1468 ftp://ftp.acn.gr/pub/lang/perl/CPAN
1469 ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1470 ftp://ftp.ntua.gr/pub/lang/perl/
1476 http://cpan.artifact.hu/
1477 ftp://cpan.artifact.hu/CPAN/
1478 http://ftp.kfki.hu/packages/perl/CPAN/
1479 ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1485 http://ftp.rhnet.is/pub/CPAN/
1486 ftp://ftp.rhnet.is/pub/CPAN/
1492 http://cpan.indigo.ie/
1493 ftp://cpan.indigo.ie/pub/CPAN/
1494 http://sunsite.compapp.dcu.ie/pub/perl/
1495 ftp://sunsite.compapp.dcu.ie/pub/perl/
1501 http://cpan.nettuno.it/
1502 http://gusp.dyndns.org/CPAN/
1503 ftp://gusp.dyndns.org/pub/CPAN
1504 http://softcity.iol.it/cpan
1505 ftp://softcity.iol.it/pub/cpan
1506 ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1507 ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1508 ftp://cis.uniRoma2.it/CPAN/
1509 ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1510 ftp://ftp.flashnet.it/pub/CPAN/
1516 http://kvin.lv/pub/CPAN/
1522 ftp://ftp.unix.lt/pub/CPAN/
1528 ftp://download.xs4all.nl/pub/mirror/CPAN/
1529 ftp://ftp.nl.uu.net/pub/CPAN/
1530 ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1531 ftp://ftp.cpan.nl/pub/CPAN/
1532 http://www.cs.uu.nl/mirror/CPAN/
1533 ftp://ftp.cs.uu.nl/mirror/CPAN/
1539 ftp://ftp.uninett.no/pub/languages/perl/CPAN
1540 ftp://ftp.uit.no/pub/languages/perl/cpan/
1546 ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
1547 ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
1548 ftp://ftp.man.torun.pl/pub/doc/CPAN/
1549 ftp://sunsite.icm.edu.pl/pub/CPAN/
1555 ftp://ftp.ua.pt/pub/CPAN/
1556 ftp://perl.di.uminho.pt/pub/CPAN/
1557 http://cpan.dei.uc.pt/
1558 ftp://ftp.dei.uc.pt/pub/CPAN
1559 ftp://ftp.ist.utl.pt/pub/CPAN/
1561 ftp://cpan.ip.pt/pub/cpan/
1562 ftp://ftp.netc.pt/pub/CPAN/
1563 ftp://ftp.up.pt/pub/CPAN
1569 ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1570 ftp://ftp.dntis.ro/pub/cpan/
1571 ftp://ftp.dnttm.ro/pub/CPAN/
1572 ftp://ftp.lasting.ro/pub/CPAN
1573 ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1579 ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1580 http://cpan.rinet.ru/
1581 ftp://cpan.rinet.ru/pub/mirror/CPAN/
1582 ftp://ftp.aha.ru/pub/CPAN/
1583 http://cpan.sai.msu.ru/
1584 ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1590 http://ftp.cvt.stuba.sk/pub/CPAN/
1591 ftp://ftp.cvt.stuba.sk/pub/CPAN/
1597 ftp://ftp.arnes.si/software/perl/CPAN/
1603 http://cpan.imasd.elmundo.es/
1604 ftp://ftp.rediris.es/mirror/CPAN/
1605 ftp://ftp.etse.urv.es/pub/perl/
1611 http://ftp.du.se/CPAN/
1612 ftp://ftp.du.se/pub/CPAN/
1613 ftp://mirror.dataphone.se/pub/CPAN
1614 ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1620 ftp://ftp.danyk.ch/CPAN/
1621 ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1627 ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1635 ftp://ftp.perl.org.ua/pub/CPAN/
1641 http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1642 ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1643 http://cpan.teleglobe.net/
1644 ftp://cpan.teleglobe.net/pub/CPAN
1645 http://cpan.crazygreek.co.uk
1646 ftp://ftp.demon.co.uk/pub/CPAN/
1647 ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1648 ftp://ftp.plig.org/pub/CPAN/
1649 http://mirror.uklinux.net/CPAN/
1650 ftp://mirror.uklinux.net/pub/CPAN/
1651 http://cpan.mirrors.clockerz.net/
1652 ftp://ftp.clockerz.net/pub/CPAN/
1653 ftp://usit.shef.ac.uk/pub/packages/CPAN/
1657 =head2 North America
1671 http://sunsite.ualberta.ca/pub/Mirror/CPAN/
1672 ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
1678 http://theoryx5.uwinnipeg.ca/pub/CPAN/
1679 ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1685 ftp://cpan.chebucto.ns.ca/pub/CPAN/
1691 ftp://ftp.crc.ca/pub/CPAN/
1697 http://cpan.mirror.smartworker.org/
1705 http://cpan.azc.uam.mx
1706 ftp://cpan.azc.uam.mx/mirrors/CPAN
1707 http://cpan.unam.mx/
1708 ftp://cpan.unam.mx/pub/CPAN
1709 http://www.msg.com.mx/CPAN/
1710 ftp://ftp.msg.com.mx/pub/CPAN/
1722 http://mirror.hiwaay.net/CPAN/
1723 ftp://mirror.hiwaay.net/CPAN/
1729 http://www.cpan.org/
1730 ftp://cpan.valueclick.com/pub/CPAN/
1731 http://mirrors.gossamer-threads.com/CPAN
1732 ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1733 http://mirrors.kernel.org/cpan/
1734 ftp://mirrors.kernel.org/pub/CPAN
1735 http://cpan.digisle.net/
1736 ftp://cpan.digisle.net/pub/CPAN
1737 http://www.perl.com/CPAN/
1738 http://download.sourceforge.net/mirrors/CPAN/
1744 ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1750 http://ftp.lug.udel.edu/pub/CPAN
1751 ftp://ftp.lug.udel.edu/pub/CPAN
1755 District of Columbia
1757 ftp://ftp.dc.aleron.net/pub/CPAN/
1763 ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1764 http://mirror.csit.fsu.edu/pub/CPAN/
1765 ftp://mirror.csit.fsu.edu/pub/CPAN/
1771 http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1772 ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
1778 ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1779 http://cpan.netnitco.net/
1780 ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1781 http://archive.progeny.com/CPAN/
1782 ftp://archive.progeny.com/CPAN/
1783 ftp://cpan.in-span.net/
1784 http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1785 ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1791 http://cpan.uky.edu/
1792 ftp://cpan.uky.edu/pub/CPAN/
1798 ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1799 http://cpan.mirrors.netnumina.com/
1800 ftp://mirrors.netnumina.com/cpan/
1806 ftp://cpan.cse.msu.edu/
1812 ftp://ftp.cpanel.net/pub/CPAN/
1813 http://cpan.teleglobe.net/
1814 ftp://cpan.teleglobe.net/pub/CPAN
1820 ftp://ftp.exobit.org/pub/perl/CPAN
1821 http://cpan.belfry.net/
1822 http://cpan.thepirtgroup.com/
1823 ftp://cpan.thepirtgroup.com/
1824 ftp://ftp.stealth.net/pub/CPAN/
1825 http://www.rge.com/pub/languages/perl/
1826 ftp://ftp.rge.com/pub/languages/perl/
1827 ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
1833 ftp://ftp.duke.edu/pub/perl/
1839 ftp://ftp.loaded.net/pub/CPAN/
1845 ftp://ftp.ou.edu/mirrors/CPAN/
1851 ftp://ftp.orst.edu/pub/CPAN
1857 http://ftp.epix.net/CPAN/
1858 ftp://ftp.epix.net/pub/languages/perl/
1859 http://mirrors.phenominet.com/pub/CPAN/
1860 ftp://mirrors.phenominet.com/pub/CPAN/
1861 http://cpan.pair.com/
1862 ftp://cpan.pair.com/pub/CPAN/
1863 ftp://carroll.cac.psu.edu/pub/CPAN/
1869 ftp://ftp.sunsite.utk.edu/pub/CPAN/
1875 http://ftp.sedl.org/pub/mirrors/CPAN/
1876 ftp://mirror.telentente.com/pub/CPAN
1882 ftp://mirror.xmission.com/CPAN/
1888 http://mirrors.rcn.net/pub/lang/CPAN/
1889 ftp://mirrors.rcn.net/pub/lang/CPAN/
1890 http://perl.secsup.org/
1891 ftp://perl.secsup.org/pub/perl/
1892 http://mirrors.phihost.com/CPAN/
1893 ftp://mirrors.phihost.com/CPAN/
1894 ftp://ruff.cs.jmu.edu/pub/CPAN/
1895 http://perl.Liquidation.com/CPAN/
1901 http://cpan.llarian.net/
1902 ftp://cpan.llarian.net/pub/CPAN/
1903 http://cpan.mirrorcentral.com/
1904 ftp://ftp.mirrorcentral.com/pub/CPAN/
1905 ftp://ftp-mirror.internap.com/pub/CPAN/
1911 http://mirror.sit.wisc.edu/pub/CPAN/
1912 ftp://mirror.sit.wisc.edu/pub/CPAN/
1924 http://ftp.planetmirror.com/pub/CPAN/
1925 ftp://ftp.planetmirror.com/pub/CPAN/
1926 ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
1927 ftp://cpan.topend.com.au/pub/CPAN/
1933 ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
1937 =head2 South America
1945 ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
1951 ftp://cpan.pop-mg.com.br/pub/CPAN/
1952 ftp://ftp.matrix.com.br/pub/perl/CPAN/
1958 ftp://ftp.psinet.cl/pub/programming/perl/CPAN/
1962 For an up-to-date listing of CPAN sites,
1963 see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
1965 =head1 Modules: Creation, Use, and Abuse
1967 (The following section is borrowed directly from Tim Bunce's modules
1968 file, available at your nearest CPAN site.)
1970 Perl implements a class using a package, but the presence of a
1971 package doesn't imply the presence of a class. A package is just a
1972 namespace. A class is a package that provides subroutines that can be
1973 used as methods. A method is just a subroutine that expects, as its
1974 first argument, either the name of a package (for "static" methods),
1975 or a reference to something (for "virtual" methods).
1977 A module is a file that (by convention) provides a class of the same
1978 name (sans the .pm), plus an import method in that class that can be
1979 called to fetch exported symbols. This module may implement some of
1980 its methods by loading dynamic C or C++ objects, but that should be
1981 totally transparent to the user of the module. Likewise, the module
1982 might set up an AUTOLOAD function to slurp in subroutine definitions on
1983 demand, but this is also transparent. Only the F<.pm> file is required to
1984 exist. See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about
1985 the AUTOLOAD mechanism.
1987 =head2 Guidelines for Module Creation
1993 Do similar modules already exist in some form?
1995 If so, please try to reuse the existing modules either in whole or
1996 by inheriting useful features into a new class. If this is not
1997 practical try to get together with the module authors to work on
1998 extending or enhancing the functionality of the existing modules.
1999 A perfect example is the plethora of packages in perl4 for dealing
2000 with command line options.
2002 If you are writing a module to expand an already existing set of
2003 modules, please coordinate with the author of the package. It
2004 helps if you follow the same naming scheme and module interaction
2005 scheme as the original author.
2009 Try to design the new module to be easy to extend and reuse.
2011 Try to C<use warnings;> (or C<use warnings qw(...);>).
2012 Remember that you can add C<no warnings qw(...);> to individual blocks
2013 of code that need less warnings.
2015 Use blessed references. Use the two argument form of bless to bless
2016 into the class name given as the first parameter of the constructor,
2021 return bless {}, $class;
2024 or even this if you'd like it to be used as either a static
2025 or a virtual method.
2029 my $class = ref($self) || $self;
2030 return bless {}, $class;
2033 Pass arrays as references so more parameters can be added later
2034 (it's also faster). Convert functions into methods where
2035 appropriate. Split large methods into smaller more flexible ones.
2036 Inherit methods from other modules if appropriate.
2038 Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
2039 Generally you can delete the C<eq 'FOO'> part with no harm at all.
2040 Let the objects look after themselves! Generally, avoid hard-wired
2041 class names as far as possible.
2043 Avoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and
2044 C<< $r->func() >> would work (see L<perlbot> for more details).
2046 Use autosplit so little used or newly added functions won't be a
2047 burden to programs that don't use them. Add test functions to
2048 the module after __END__ either using AutoSplit or by saying:
2050 eval join('',<main::DATA>) || die $@ unless caller();
2052 Does your module pass the 'empty subclass' test? If you say
2053 C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
2054 to use SUBCLASS in exactly the same way as YOURCLASS. For example,
2055 does your application still work if you change: C<$obj = new YOURCLASS;>
2056 into: C<$obj = new SUBCLASS;> ?
2058 Avoid keeping any state information in your packages. It makes it
2059 difficult for multiple other packages to use yours. Keep state
2060 information in objects.
2064 Try to C<use strict;> (or C<use strict qw(...);>).
2065 Remember that you can add C<no strict qw(...);> to individual blocks
2066 of code that need less strictness.
2070 Follow the guidelines in the perlstyle(1) manual.
2076 Some simple style guidelines
2078 The perlstyle manual supplied with Perl has many helpful points.
2080 Coding style is a matter of personal taste. Many people evolve their
2081 style over several years as they learn what helps them write and
2082 maintain good code. Here's one set of assorted suggestions that
2083 seem to be widely used by experienced developers:
2085 Use underscores to separate words. It is generally easier to read
2086 $var_names_like_this than $VarNamesLikeThis, especially for
2087 non-native speakers of English. It's also a simple rule that works
2088 consistently with VAR_NAMES_LIKE_THIS.
2090 Package/Module names are an exception to this rule. Perl informally
2091 reserves lowercase module names for 'pragma' modules like integer
2092 and strict. Other modules normally begin with a capital letter and
2093 use mixed case with no underscores (need to be short and portable).
2095 You may find it helpful to use letter case to indicate the scope
2096 or nature of a variable. For example:
2098 $ALL_CAPS_HERE constants only (beware clashes with Perl vars)
2099 $Some_Caps_Here package-wide global/static
2100 $no_caps_here function scope my() or local() variables
2102 Function and method names seem to work best as all lowercase.
2103 e.g., C<< $obj->as_string() >>.
2105 You can use a leading underscore to indicate that a variable or
2106 function should not be used outside the package that defined it.
2110 Select what to export.
2112 Do NOT export method names!
2114 Do NOT export anything else by default without a good reason!
2116 Exports pollute the namespace of the module user. If you must
2117 export try to use @EXPORT_OK in preference to @EXPORT and avoid
2118 short or common names to reduce the risk of name clashes.
2120 Generally anything not exported is still accessible from outside the
2121 module using the ModuleName::item_name (or C<< $blessed_ref->method >>)
2122 syntax. By convention you can use a leading underscore on names to
2123 indicate informally that they are 'internal' and not for public use.
2125 (It is actually possible to get private functions by saying:
2126 C<my $subref = sub { ... }; &$subref;>. But there's no way to call that
2127 directly as a method, because a method must have a name in the symbol
2130 As a general rule, if the module is trying to be object oriented
2131 then export nothing. If it's just a collection of functions then
2132 @EXPORT_OK anything but use @EXPORT with caution.
2136 Select a name for the module.
2138 This name should be as descriptive, accurate, and complete as
2139 possible. Avoid any risk of ambiguity. Always try to use two or
2140 more whole words. Generally the name should reflect what is special
2141 about what the module does rather than how it does it. Please use
2142 nested module names to group informally or categorize a module.
2143 There should be a very good reason for a module not to have a nested name.
2144 Module names should begin with a capital letter.
2146 Having 57 modules all called Sort will not make life easy for anyone
2147 (though having 23 called Sort::Quick is only marginally better :-).
2148 Imagine someone trying to install your module alongside many others.
2149 If in any doubt ask for suggestions in comp.lang.perl.misc.
2151 If you are developing a suite of related modules/classes it's good
2152 practice to use nested classes with a common prefix as this will
2153 avoid namespace clashes. For example: Xyz::Control, Xyz::View,
2154 Xyz::Model etc. Use the modules in this list as a naming guide.
2156 If adding a new module to a set, follow the original author's
2157 standards for naming modules and the interface to methods in
2160 If developing modules for private internal or project specific use,
2161 that will never be released to the public, then you should ensure
2162 that their names will not clash with any future public module. You
2163 can do this either by using the reserved Local::* category or by
2164 using a category name that includes an underscore like Foo_Corp::*.
2166 To be portable each component of a module name should be limited to
2167 11 characters. If it might be used on MS-DOS then try to ensure each is
2168 unique in the first 8 characters. Nested modules make this easier.
2172 Have you got it right?
2174 How do you know that you've made the right decisions? Have you
2175 picked an interface design that will cause problems later? Have
2176 you picked the most appropriate name? Do you have any questions?
2178 The best way to know for sure, and pick up many helpful suggestions,
2179 is to ask someone who knows. Comp.lang.perl.misc is read by just about
2180 all the people who develop modules and it's the best place to ask.
2182 All you need to do is post a short summary of the module, its
2183 purpose and interfaces. A few lines on each of the main methods is
2184 probably enough. (If you post the whole module it might be ignored
2185 by busy people - generally the very people you want to read it!)
2187 Don't worry about posting if you can't say when the module will be
2188 ready - just say so in the message. It might be worth inviting
2189 others to help you, they may be able to complete it for you!
2193 README and other Additional Files.
2195 It's well known that software developers usually fully document the
2196 software they write. If, however, the world is in urgent need of
2197 your software and there is not enough time to write the full
2198 documentation please at least provide a README file containing:
2204 A description of the module/package/extension etc.
2208 A copyright notice - see below.
2212 Prerequisites - what else you may need to have.
2216 How to build it - possible changes to Makefile.PL etc.
2224 Recent changes in this release, especially incompatibilities
2228 Changes / enhancements you plan to make in the future.
2232 If the README file seems to be getting too large you may wish to
2233 split out some of the sections into separate files: INSTALL,
2240 Adding a Copyright Notice.
2242 How you choose to license your work is a personal decision.
2243 The general mechanism is to assert your Copyright and then make
2244 a declaration of how others may copy/use/modify your work.
2246 Perl, for example, is supplied with two types of licence: The GNU
2247 GPL and The Artistic Licence (see the files README, Copying, and
2248 Artistic). Larry has good reasons for NOT just using the GNU GPL.
2250 My personal recommendation, out of respect for Larry, Perl, and the
2251 Perl community at large is to state something simply like:
2253 Copyright (c) 1995 Your Name. All rights reserved.
2254 This program is free software; you can redistribute it and/or
2255 modify it under the same terms as Perl itself.
2257 This statement should at least appear in the README file. You may
2258 also wish to include it in a Copying file and your source files.
2259 Remember to include the other words in addition to the Copyright.
2263 Give the module a version/issue/release number.
2265 To be fully compatible with the Exporter and MakeMaker modules you
2266 should store your module's version number in a non-my package
2267 variable called $VERSION. This should be a floating point
2268 number with at least two digits after the decimal (i.e., hundredths,
2269 e.g, C<$VERSION = "0.01">). Don't use a "1.3.2" style version.
2270 See L<Exporter> for details.
2272 It may be handy to add a function or method to retrieve the number.
2273 Use the number in announcements and archive file names when
2274 releasing the module (ModuleName-1.02.tar.Z).
2275 See perldoc ExtUtils::MakeMaker.pm for details.
2279 How to release and distribute a module.
2281 It's good idea to post an announcement of the availability of your
2282 module (or the module itself if small) to the comp.lang.perl.announce
2283 Usenet newsgroup. This will at least ensure very wide once-off
2286 If possible, register the module with CPAN. You should
2287 include details of its location in your announcement.
2289 Some notes about ftp archives: Please use a long descriptive file
2290 name that includes the version number. Most incoming directories
2291 will not be readable/listable, i.e., you won't be able to see your
2292 file after uploading it. Remember to send your email notification
2293 message as soon as possible after uploading else your file may get
2294 deleted automatically. Allow time for the file to be processed
2295 and/or check the file has been processed before announcing its
2298 FTP Archives for Perl Modules:
2300 Follow the instructions and links on:
2302 http://www.cpan.org/modules/00modlist.long.html
2303 http://www.cpan.org/modules/04pause.html
2305 or upload to one of these sites:
2307 https://pause.kbx.de/pause/
2308 http://pause.perl.org/pause/
2310 and notify <modules@perl.org>.
2312 By using the WWW interface you can ask the Upload Server to mirror
2313 your modules from your ftp or WWW site into your own directory on
2316 Please remember to send me an updated entry for the Module list!
2320 Take care when changing a released module.
2322 Always strive to remain compatible with previous released versions.
2323 Otherwise try to add a mechanism to revert to the
2324 old behavior if people rely on it. Document incompatible changes.
2330 =head2 Guidelines for Converting Perl 4 Library Scripts into Modules
2336 There is no requirement to convert anything.
2338 If it ain't broke, don't fix it! Perl 4 library scripts should
2339 continue to work with no problems. You may need to make some minor
2340 changes (like escaping non-array @'s in double quoted strings) but
2341 there is no need to convert a .pl file into a Module for just that.
2345 Consider the implications.
2347 All Perl applications that make use of the script will need to
2348 be changed (slightly) if the script is converted into a module. Is
2349 it worth it unless you plan to make other changes at the same time?
2353 Make the most of the opportunity.
2355 If you are going to convert the script to a module you can use the
2356 opportunity to redesign the interface. The guidelines for module
2357 creation above include many of the issues you should consider.
2361 The pl2pm utility will get you started.
2363 This utility will read *.pl files (given as parameters) and write
2364 corresponding *.pm files. The pl2pm utilities does the following:
2370 Adds the standard Module prologue lines
2374 Converts package specifiers from ' to ::
2378 Converts die(...) to croak(...)
2382 Several other minor changes
2386 Being a mechanical process pl2pm is not bullet proof. The converted
2387 code will need careful checking, especially any package statements.
2388 Don't delete the original .pl file till the new .pm one works!
2392 =head2 Guidelines for Reusing Application Code
2398 Complete applications rarely belong in the Perl Module Library.
2402 Many applications contain some Perl code that could be reused.
2404 Help save the world! Share your code in a form that makes it easy
2409 Break-out the reusable code into one or more separate module files.
2413 Take the opportunity to reconsider and redesign the interfaces.
2417 In some cases the 'application' can then be reduced to a small
2419 fragment of code built on top of the reusable modules. In these cases
2420 the application could invoked as:
2422 % perl -e 'use Module::Name; method(@ARGV)' ...
2424 % perl -mModule::Name ... (in perl5.002 or higher)
2430 Perl does not enforce private and public parts of its modules as you may
2431 have been used to in other languages like C++, Ada, or Modula-17. Perl
2432 doesn't have an infatuation with enforced privacy. It would prefer
2433 that you stayed out of its living room because you weren't invited, not
2434 because it has a shotgun.
2436 The module and its user have a contract, part of which is common law,
2437 and part of which is "written". Part of the common law contract is
2438 that a module doesn't pollute any namespace it wasn't asked to. The
2439 written contract for the module (A.K.A. documentation) may make other
2440 provisions. But then you know when you C<use RedefineTheWorld> that
2441 you're redefining the world and willing to take the consequences.