home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_perl.idb / usr / freeware / catman / u_man / cat1 / perlmodlib.Z / perlmodlib
Encoding:
Text File  |  1998-10-28  |  41.2 KB  |  1,255 lines

  1.  
  2.  
  3.  
  4.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       perlmodlib - constructing new    Perl modules and finding
  10.       existing ones
  11.  
  12.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  13.      TTTTHHHHEEEE PPPPEEEERRRRLLLL MMMMOOOODDDDUUUULLLLEEEE LLLLIIIIBBBBRRRRAAAARRRRYYYY
  14.       A number of modules are included the Perl distribution.
  15.       These    are described below, and all end in ._p_m.  You may also
  16.       discover files in the    library    directory that end in either
  17.       ._p_l or ._p_h.  These are old libraries supplied    so that    old
  18.       programs that    use them still run.  The ._p_l files will    all
  19.       eventually be    converted into standard    modules, and the ._p_h
  20.       files    made by    hhhh2222pppphhhh will probably end up as extension modules
  21.       made by hhhh2222xxxxssss.     (Some ._p_h values may already be available
  22.       through the POSIX module.)  The ppppllll2222ppppmmmm    file in    the
  23.       distribution may help    in your    conversion, but    it's just a
  24.       mechanical process and therefore far from bulletproof.
  25.  
  26.       PPPPrrrraaaaggggmmmmaaaattttiiiicccc MMMMoooodddduuuulllleeeessss
  27.  
  28.       They work somewhat like pragmas in that they tend to affect
  29.       the compilation of your program, and thus will usually work
  30.       well only when used within a use, or no.  Most of these are
  31.       locally scoped, so an    inner BLOCK may    countermand any    of
  32.       these    by saying:
  33.  
  34.           no integer;
  35.           no strict    'refs';
  36.  
  37.       which    lasts until the    end of that BLOCK.
  38.  
  39.       Unlike the pragmas that effect the $^H hints variable, the
  40.       use vars and use subs    declarations are not BLOCK-scoped.
  41.       They allow you to predeclare a variables or subroutines
  42.       within a particular _f_i_l_e rather than just a block.  Such
  43.       declarations are effective for the entire file for which
  44.       they were declared.  You cannot rescind them with no vars or
  45.       no subs.
  46.  
  47.       The following    pragmas    are defined (and have their own
  48.       documentation).
  49.  
  50.       use autouse MODULE =>    qw(sub1    sub2 sub3)
  51.               Defers require MODULE until someone calls    one of
  52.               the specified subroutines    (which must be
  53.               exported by MODULE).  This pragma    should be used
  54.               with caution, and    only when necessary.
  55.  
  56.       blib          manipulate @INC at compile time to use
  57.               MakeMaker's uninstalled version of a package
  58.  
  59.  
  60.  
  61.  
  62.  
  63.      Page 1                        (printed 10/23/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  71.  
  72.  
  73.  
  74.       diagnostics force verbose warning diagnostics
  75.  
  76.       integer     compute arithmetic in integer instead of double
  77.  
  78.       less          request less of something    from the compiler
  79.  
  80.       lib          manipulate @INC at compile time
  81.  
  82.       locale      use or ignore current locale for builtin
  83.               operations (see the _p_e_r_l_l_o_c_a_l_e manpage)
  84.  
  85.       ops          restrict named opcodes when compiling or running
  86.               Perl code
  87.  
  88.       overload    overload basic Perl operations
  89.  
  90.       re          alter behaviour of regular expressions
  91.  
  92.       sigtrap     enable simple signal handling
  93.  
  94.       strict      restrict unsafe constructs
  95.  
  96.       subs          predeclare sub names
  97.  
  98.       vmsish      adopt certain VMS-specific behaviors
  99.  
  100.       vars          predeclare global    variable names
  101.  
  102.       SSSSttttaaaannnnddddaaaarrrrdddd MMMMoooodddduuuulllleeeessss
  103.  
  104.       Standard, bundled modules are    all expected to    behave in a
  105.       well-defined manner with respect to namespace    pollution
  106.       because they use the Exporter    module.     See their own
  107.       documentation    for details.
  108.  
  109.       AnyDBM_File provide framework    for multiple DBMs
  110.  
  111.       AutoLoader  load functions only on demand
  112.  
  113.       AutoSplit   split a package for autoloading
  114.  
  115.       Benchmark   benchmark    running    times of code
  116.  
  117.       CPAN          interface    to Comprehensive Perl Archive Network
  118.  
  119.       CPAN::FirstTime
  120.               create a CPAN configuration file
  121.  
  122.       CPAN::Nox   run CPAN while avoiding compiled extensions
  123.  
  124.       Carp          warn of errors (from perspective of caller)
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                        (printed 10/23/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  137.  
  138.  
  139.  
  140.       Class::Struct
  141.               declare struct-like datatypes
  142.  
  143.       Config      access Perl configuration    information
  144.  
  145.       Cwd          get pathname of current working directory
  146.  
  147.       DB_File     access to    Berkeley DB
  148.  
  149.       Devel::SelfStubber
  150.               generate stubs for a SelfLoading module
  151.  
  152.       DirHandle   supply object methods for    directory handles
  153.  
  154.       DynaLoader  dynamically load C libraries into    Perl code
  155.  
  156.       English     use nice English (or awk)    names for ugly
  157.               punctuation variables
  158.  
  159.       Env          import environment variables
  160.  
  161.       Exporter    implements default import    method for modules
  162.  
  163.       ExtUtils::Embed
  164.               utilities    for embedding Perl in C/C++
  165.               applications
  166.  
  167.       ExtUtils::Install
  168.               install files from here to there
  169.  
  170.       ExtUtils::Liblist
  171.               determine    libraries to use and how to use    them
  172.  
  173.       ExtUtils::MM_OS2
  174.               methods to override Unix behaviour in
  175.               ExtUtils::MakeMaker
  176.  
  177.       ExtUtils::MM_Unix
  178.               methods used by ExtUtils::MakeMaker
  179.  
  180.       ExtUtils::MM_VMS
  181.               methods to override Unix behaviour in
  182.               ExtUtils::MakeMaker
  183.  
  184.       ExtUtils::MakeMaker
  185.               create an    extension Makefile
  186.  
  187.       ExtUtils::Manifest
  188.               utilities    to write and check a MANIFEST file
  189.  
  190.       ExtUtils::Mkbootstrap
  191.               make a bootstrap file for    use by DynaLoader
  192.  
  193.  
  194.  
  195.      Page 3                        (printed 10/23/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  203.  
  204.  
  205.  
  206.       ExtUtils::Mksymlists
  207.               write linker options files for dynamic extension
  208.  
  209.       ExtUtils::testlib
  210.               add blib/* directories to    @INC
  211.  
  212.       Fatal          make errors in builtins or Perl functions    fatal
  213.  
  214.       Fcntl          load the C Fcntl.h defines
  215.  
  216.       File::Basename
  217.               split a pathname into pieces
  218.  
  219.       File::CheckTree
  220.               run many filetest    checks on a tree
  221.  
  222.       File::Compare
  223.               compare files or filehandles
  224.  
  225.       File::Copy  copy files or filehandles
  226.  
  227.       File::Find  traverse a file tree
  228.  
  229.       File::Path  create or    remove a series    of directories
  230.  
  231.       File::stat  by-name interface    to Perl's builtin _s_t_a_t()
  232.               functions
  233.  
  234.       FileCache   keep more    files open than    the system permits
  235.  
  236.       FileHandle  supply object methods for    filehandles
  237.  
  238.       FindBin     locate directory of original Perl    script
  239.  
  240.       GDBM_File   access to    the gdbm library
  241.  
  242.       Getopt::Long
  243.               extended processing of command line options
  244.  
  245.       Getopt::Std process single-character switches    with switch
  246.               clustering
  247.  
  248.       I18N::Collate
  249.               compare 8-bit scalar data    according to the
  250.               current locale
  251.  
  252.       IO          load various IO modules
  253.  
  254.       IO::File    supply object methods for    filehandles
  255.  
  256.       IO::Handle  supply object methods for    I/O handles
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                        (printed 10/23/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  269.  
  270.  
  271.  
  272.       IO::Pipe    supply object methods for    pipes
  273.  
  274.       IO::Seekable
  275.               supply seek based    methods    for I/O    objects
  276.  
  277.       IO::Select  OO interface to the select system    call
  278.  
  279.       IO::Socket  object interface to socket communications
  280.  
  281.       IPC::Open2  open a process for both reading and writing
  282.  
  283.       IPC::Open3  open a process for reading, writing, and error
  284.               handling
  285.  
  286.       Math::BigFloat
  287.               arbitrary    length float math package
  288.  
  289.       Math::BigInt
  290.               arbitrary    size integer math package
  291.  
  292.       Math::Complex
  293.               complex numbers and associated mathematical
  294.               functions
  295.  
  296.       Math::Trig  simple interface to parts    of Math::Complex for
  297.               those who    need trigonometric functions only for
  298.               real numbers
  299.  
  300.       NDBM_File   tied access to ndbm files
  301.  
  302.       Net::Ping   Hello, anybody home?
  303.  
  304.       Net::hostent
  305.               by-name interface    to Perl's builtin gethost*()
  306.               functions
  307.  
  308.       Net::netent by-name interface    to Perl's builtin getnet*()
  309.               functions
  310.  
  311.       Net::protoent
  312.               by-name interface    to Perl's builtin getproto*()
  313.               functions
  314.  
  315.       Net::servent
  316.               by-name interface    to Perl's builtin getserv*()
  317.               functions
  318.  
  319.       Opcode      disable named opcodes when compiling or running
  320.               Perl code
  321.  
  322.       Pod::Text   convert POD data to formatted ASCII text
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                        (printed 10/23/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  335.  
  336.  
  337.  
  338.       POSIX          interface    to IEEE    Standard 1003.1
  339.  
  340.       SDBM_File   tied access to sdbm files
  341.  
  342.       Safe          compile and execute code in restricted
  343.               compartments
  344.  
  345.       Search::Dict
  346.               search for key in    dictionary file
  347.  
  348.       SelectSaver save and restore selected    file handle
  349.  
  350.       SelfLoader  load functions only on demand
  351.  
  352.       Shell          run shell    commands transparently within Perl
  353.  
  354.       Socket      load the C socket.h defines and structure
  355.               manipulators
  356.  
  357.       Symbol      manipulate Perl symbols and their    names
  358.  
  359.       Sys::Hostname
  360.               try every    conceivable way    to get hostname
  361.  
  362.       Sys::Syslog interface    to the Unix _s_y_s_l_o_g(3) calls
  363.  
  364.       Term::Cap   termcap interface
  365.  
  366.       Term::Complete
  367.               word completion module
  368.  
  369.       Term::ReadLine
  370.               interface    to various readline packages
  371.  
  372.       Test::Harness
  373.               run Perl standard    test scripts with statistics
  374.  
  375.       Text::Abbrev
  376.               create an    abbreviation table from    a list
  377.  
  378.       Text::ParseWords
  379.               parse text into an array of tokens
  380.  
  381.       Text::Soundex
  382.               implementation of    the Soundex Algorithm as
  383.               described    by Knuth
  384.  
  385.       Text::Tabs  expand and unexpand tabs per the Unix _e_x_p_a_n_d(1)
  386.               and _u_n_e_x_p_a_n_d(1)
  387.  
  388.       Text::Wrap  line wrapping to form simple paragraphs
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                        (printed 10/23/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  401.  
  402.  
  403.  
  404.       Tie::Hash   base class definitions for tied hashes
  405.  
  406.       Tie::RefHash
  407.               base class definitions for tied hashes with
  408.               references as keys
  409.  
  410.       Tie::Scalar base class definitions for tied scalars
  411.  
  412.       Tie::SubstrHash
  413.               fixed-table-size,    fixed-key-length hashing
  414.  
  415.       Time::Local efficiently compute time from local and GMT time
  416.  
  417.       Time::gmtime
  418.               by-name interface    to Perl's builtin _g_m_t_i_m_e()
  419.               function
  420.  
  421.       Time::localtime
  422.               by-name interface    to Perl's builtin _l_o_c_a_l_t_i_m_e()
  423.               function
  424.  
  425.       Time::tm    internal object used by Time::gmtime and
  426.               Time::localtime
  427.  
  428.       UNIVERSAL   base class for ALL classes (blessed references)
  429.  
  430.       User::grent by-name interface    to Perl's builtin getgr*()
  431.               functions
  432.  
  433.       User::pwent by-name interface    to Perl's builtin getpw*()
  434.               functions
  435.  
  436.       To find out _a_l_l the modules installed    on your    system,
  437.       including those without documentation    or outside the
  438.       standard release, do this:
  439.  
  440.           %    find `perl -e 'print "@INC"'` -name '*.pm' -print
  441.  
  442.       They should all have their own documentation installed and
  443.       accessible via your system _m_a_n(1) command.  If that fails,
  444.       try the _p_e_r_l_d_o_c program.
  445.  
  446.       EEEExxxxtttteeeennnnssssiiiioooonnnn MMMMoooodddduuuulllleeeessss
  447.  
  448.       Extension modules are    written    in C (or a mix of Perl and C)
  449.       and may be statically    linked or in general are dynamically
  450.       loaded into Perl if and when you need    them.  Supported
  451.       extension modules include the    Socket,    Fcntl, and POSIX
  452.       modules.
  453.  
  454.       Many popular C extension modules do not come bundled (at
  455.       least, not completely) due to    their sizes, volatility, or
  456.  
  457.  
  458.  
  459.      Page 7                        (printed 10/23/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  467.  
  468.  
  469.  
  470.       simply lack of time for adequate testing and configuration
  471.       across the multitude of platforms on which Perl was beta-
  472.       tested.  You are encouraged to look for them in _a_r_c_h_i_e(1L),
  473.       the Perl FAQ or Meta-FAQ, the    WWW page, and even with    their
  474.       authors before randomly posting asking for their present
  475.       condition and    disposition.
  476.  
  477.      CCCCPPPPAAAANNNN
  478.       CPAN stands for the Comprehensive Perl Archive Network.
  479.       This is a globally replicated    collection of all known    Perl
  480.       materials, including hundreds    of unbundled modules.  Here
  481.       are the major    categories of modules:
  482.  
  483.       +o Language Extensions    and Documentation Tools
  484.  
  485.       +o Development    Support
  486.  
  487.       +o Operating System Interfaces
  488.  
  489.      Communication
  490.       +o Networking,    Device Control (modems)    and InterProcess
  491.  
  492.       +o Data Types and Data    Type Utilities
  493.  
  494.       +o Database Interfaces
  495.  
  496.       +o User Interfaces
  497.  
  498.       +o Interfaces to / Emulations of Other    Programming Languages
  499.  
  500.      Handles)
  501.       +o File Names,    File Systems and File Locking (see also    File
  502.  
  503.      Searching
  504.       +o String Processing, Language    Text Processing, Parsing, and
  505.  
  506.       +o Option, Argument, Parameter, and Configuration File    Processing
  507.  
  508.       +o Internationalization and Locale
  509.  
  510.       +o Authentication, Security, and Encryption
  511.  
  512.       +o World Wide Web, HTML, HTTP,    CGI, MIME
  513.  
  514.       +o Server and Daemon Utilities
  515.  
  516.       +o Archiving and Compression
  517.  
  518.       +o Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
  519.  
  520.       +o Mail and Usenet News
  521.  
  522.  
  523.  
  524.  
  525.      Page 8                        (printed 10/23/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  533.  
  534.  
  535.  
  536.       +o Control Flow Utilities (callbacks and exceptions etc)
  537.  
  538.       +o File Handle    and Input/Output Stream    Utilities
  539.  
  540.       +o Miscellaneous Modules
  541.  
  542.       The registered CPAN sites as of this writing include the
  543.       following.  You should try to    choose one close to you:
  544.  
  545.       +o Africa
  546.  
  547.            South Africa       ftp://ftp.is.co.za/programming/perl/CPAN/
  548.  
  549.  
  550.       +o Asia
  551.  
  552.            Hong    Kong       ftp://ftp.hkstar.com/pub/CPAN/
  553.            Japan       ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
  554.                    ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
  555.            South Korea       ftp://ftp.nuri.net/pub/CPAN/
  556.            Taiwan       ftp://dongpo.math.ncu.edu.tw/perl/CPAN/
  557.                    ftp://ftp.wownet.net/pub2/PERL/
  558.  
  559.  
  560.       +o Australasia
  561.  
  562.            Australia       ftp://ftp.netinfo.com.au/pub/perl/CPAN/
  563.            New Zealand       ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/
  564.  
  565.  
  566.       +o Europe
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                        (printed 10/23/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  599.  
  600.  
  601.  
  602.            Austria       ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
  603.            Belgium       ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
  604.            Czech Republic  ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/
  605.            Denmark       ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
  606.            Finland       ftp://ftp.funet.fi/pub/languages/perl/CPAN/
  607.            France       ftp://ftp.ibp.fr/pub/perl/CPAN/
  608.                    ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/
  609.            Germany       ftp://ftp.gmd.de/packages/CPAN/
  610.                    ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/
  611.                    ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
  612.                    ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
  613.                    ftp://ftp.uni-erlangen.de/pub/source/Perl/CPAN/
  614.                    ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
  615.            Greece       ftp://ftp.ntua.gr/pub/lang/perl/
  616.            Hungary       ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
  617.            Italy       ftp://cis.utovrm.it/CPAN/
  618.            the Netherlands ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/
  619.                    ftp://ftp.EU.net/packages/cpan/
  620.            Norway       ftp://ftp.uit.no/pub/languages/perl/cpan/
  621.            Poland       ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
  622.                    ftp://sunsite.icm.edu.pl/pub/CPAN/
  623.            Portugal       ftp://ftp.ci.uminho.pt/pub/lang/perl/
  624.                    ftp://ftp.telepac.pt/pub/CPAN/
  625.            Russia       ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
  626.            Slovenia       ftp://ftp.arnes.si/software/perl/CPAN/
  627.            Spain       ftp://ftp.etse.urv.es/pub/mirror/perl/
  628.                    ftp://ftp.rediris.es/mirror/CPAN/
  629.            Sweden       ftp://ftp.sunet.se/pub/lang/perl/CPAN/
  630.            UK           ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
  631.                    ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
  632.                    ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/
  633.  
  634.  
  635.       +o North America
  636.  
  637.            Ontario       ftp://ftp.utilis.com/public/CPAN/
  638.                    ftp://enterprise.ic.gc.ca/pub/perl/CPAN/
  639.            Manitoba       ftp://theory.uwinnipeg.ca/pub/CPAN/
  640.            California       ftp://ftp.digital.com/pub/plan/perl/CPAN/
  641.                    ftp://ftp.cdrom.com/pub/perl/CPAN/
  642.            Colorado       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
  643.            Florida       ftp://ftp.cis.ufl.edu/pub/perl/CPAN/
  644.            Illinois       ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/
  645.            Massachusetts   ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/
  646.            New York       ftp://ftp.rge.com/pub/languages/perl/
  647.            North Carolina  ftp://ftp.duke.edu/pub/perl/
  648.            Oklahoma       ftp://ftp.ou.edu/mirrors/CPAN/
  649.            Oregon       http://www.perl.org/CPAN/
  650.                    ftp://ftp.orst.edu/pub/packages/CPAN/
  651.            Pennsylvania       ftp://ftp.epix.net/pub/languages/perl/
  652.            Texas       ftp://ftp.sedl.org/pub/mirrors/CPAN/
  653.                    ftp://ftp.metronet.com/pub/perl/
  654.  
  655.  
  656.  
  657.      Page 10                        (printed 10/23/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  665.  
  666.  
  667.  
  668.       +o South America
  669.  
  670.            Chile       ftp://sunsite.dcc.uchile.cl/pub/Lang/perl/CPAN/
  671.  
  672.  
  673.       For an up-to-date listing of CPAN sites, see
  674.       _h_t_t_p://_w_w_w._p_e_r_l._c_o_m/_p_e_r_l/_C_P_A_N    or _f_t_p://_f_t_p._p_e_r_l._c_o_m/_p_e_r_l/.
  675.  
  676.      MMMMoooodddduuuulllleeeessss:::: CCCCrrrreeeeaaaattttiiiioooonnnn,,,,    UUUUsssseeee,,,, aaaannnndddd AAAAbbbbuuuusssseeee
  677.       (The following section is borrowed directly from Tim Bunce's
  678.       modules file,    available at your nearest CPAN site.)
  679.  
  680.       Perl implements a class using    a package, but the presence of
  681.       a package doesn't imply the presence of a class.  A package
  682.       is just a namespace.    A class    is a package that provides
  683.       subroutines that can be used as methods.  A method is    just a
  684.       subroutine that expects, as its first    argument, either the
  685.       name of a package (for "static" methods), or a reference to
  686.       something (for "virtual" methods).
  687.  
  688.       A module is a    file that (by convention) provides a class of
  689.       the same name    (sans the .pm),    plus an    import method in that
  690.       class    that can be called to fetch exported symbols.  This
  691.       module may implement some of its methods by loading dynamic
  692.       C or C++ objects, but    that should be totally transparent to
  693.       the user of the module.  Likewise, the module    might set up
  694.       an AUTOLOAD function to slurp    in subroutine definitions on
  695.       demand, but this is also transparent.     Only the ._p_m file is
  696.       required to exist.  See the _p_e_r_l_s_u_b manpage, the _p_e_r_l_t_o_o_t
  697.       manpage, and the _A_u_t_o_L_o_a_d_e_r manpage for details about    the
  698.       AUTOLOAD mechanism.
  699.  
  700.       GGGGuuuuiiiiddddeeeelllliiiinnnneeeessss ffffoooorrrr MMMMoooodddduuuulllleeee    CCCCrrrreeeeaaaattttiiiioooonnnn
  701.  
  702.       Do similar modules already exist in some form?
  703.           If so, please try    to reuse the existing modules either
  704.           in whole or by inheriting    useful features    into a new
  705.           class.  If this is not practical try to get together
  706.           with the module authors to work on extending or
  707.           enhancing    the functionality of the existing modules.  A
  708.           perfect example is the plethora of packages in perl4 for
  709.           dealing with command line    options.
  710.  
  711.           If you are writing a module to expand an already
  712.           existing set of modules, please coordinate with the
  713.           author of    the package.  It helps if you follow the same
  714.           naming scheme and    module interaction scheme as the
  715.           original author.
  716.  
  717.       Try to design    the new    module to be easy to extend and    reuse.
  718.           Use blessed references.  Use the two argument form of
  719.           bless to bless into the class name given as the first
  720.  
  721.  
  722.  
  723.      Page 11                        (printed 10/23/98)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  731.  
  732.  
  733.  
  734.           parameter    of the constructor, e.g.,:
  735.  
  736.            sub new {
  737.               my $class    = shift;
  738.               return bless {}, $class;
  739.            }
  740.  
  741.           or even this if you'd like it to be used as either a
  742.           static or    a virtual method.
  743.  
  744.            sub new {
  745.               my $self    = shift;
  746.               my $class    = ref($self) ||    $self;
  747.               return bless {}, $class;
  748.            }
  749.  
  750.           Pass arrays as references    so more    parameters can be
  751.           added later (it's    also faster).  Convert functions into
  752.           methods where appropriate.  Split    large methods into
  753.           smaller more flexible ones.  Inherit methods from    other
  754.           modules if appropriate.
  755.  
  756.           Avoid class name tests like: die "Invalid" unless    ref
  757.           $ref eq 'FOO'.  Generally    you can    delete the "eq 'FOO'"
  758.           part with    no harm    at all.     Let the objects look after
  759.           themselves! Generally, avoid hard-wired class names as
  760.           far as possible.
  761.  
  762.           Avoid $r->Class::func() where using @ISA=qw(... Class
  763.           ...) and $r->func() would    work (see the _p_e_r_l_b_o_t manpage
  764.           for more details).
  765.  
  766.           Use autosplit so little used or newly added functions
  767.           won't be a burden    to programs that don't use them. Add
  768.           test functions to    the module after __END__ either    using
  769.           AutoSplit    or by saying:
  770.  
  771.            eval join('',<main::DATA>) || die $@ unless caller();
  772.  
  773.           Does your    module pass the    'empty subclass' test? If you
  774.           say "@SUBCLASS::ISA = qw(YOURCLASS);" your applications
  775.           should be    able to    use SUBCLASS in    exactly    the same way
  776.           as YOURCLASS.  For example, does your application    still
  777.           work if you change:  $obj    = new YOURCLASS; into: $obj =
  778.           new SUBCLASS; ?
  779.  
  780.           Avoid keeping any    state information in your packages. It
  781.           makes it difficult for multiple other packages to    use
  782.           yours. Keep state    information in objects.
  783.  
  784.           Always use ----wwww. Try to use    strict;    (or use    strict
  785.           qw(...);).  Remember that    you can    add no strict qw(...);
  786.  
  787.  
  788.  
  789.      Page 12                        (printed 10/23/98)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  797.  
  798.  
  799.  
  800.           to individual blocks of code that    need less strictness.
  801.           Always use ----wwww. Always use    ----wwww!  Follow the    guidelines in
  802.           the _p_e_r_l_s_t_y_l_e(1) manual.
  803.  
  804.       Some simple style guidelines
  805.           The perlstyle manual supplied with Perl has many helpful
  806.           points.
  807.  
  808.           Coding style is a    matter of personal taste. Many people
  809.           evolve their style over several years as they learn what
  810.           helps them write and maintain good code.    Here's one set
  811.           of assorted suggestions that seem    to be widely used by
  812.           experienced developers:
  813.  
  814.           Use underscores to separate words.  It is    generally
  815.           easier to    read $var_names_like_this than
  816.           $VarNamesLikeThis, especially for    non-native speakers of
  817.           English. It's also a simple rule that works consistently
  818.           with VAR_NAMES_LIKE_THIS.
  819.  
  820.           Package/Module names are an exception to this rule. Perl
  821.           informally reserves lowercase module names for 'pragma'
  822.           modules like integer and strict. Other modules normally
  823.           begin with a capital letter and use mixed    case with no
  824.           underscores (need    to be short and    portable).
  825.  
  826.           You may find it helpful to use letter case to indicate
  827.           the scope    or nature of a variable. For example:
  828.  
  829.            $ALL_CAPS_HERE    constants only (beware clashes with Perl vars)
  830.            $Some_Caps_Here    package-wide global/static
  831.            $no_caps_here    function scope my() or local() variables
  832.  
  833.           Function and method names    seem to    work best as all
  834.           lowercase.  e.g.,    $obj->as_string().
  835.  
  836.           You can use a leading underscore to indicate that    a
  837.           variable or function should not be used outside the
  838.           package that defined it.
  839.  
  840.       Select what to export.
  841.           Do NOT export method names!
  842.  
  843.           Do NOT export anything else by default without a good
  844.           reason!
  845.  
  846.           Exports pollute the namespace of the module user.     If
  847.           you must export try to use @EXPORT_OK in preference to
  848.           @EXPORT and avoid    short or common    names to reduce    the
  849.           risk of name clashes.
  850.  
  851.           Generally    anything not exported is still accessible from
  852.  
  853.  
  854.  
  855.      Page 13                        (printed 10/23/98)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  863.  
  864.  
  865.  
  866.           outside the module using the ModuleName::item_name (or
  867.           $blessed_ref->method) syntax.  By    convention you can use
  868.           a    leading    underscore on names to indicate    informally
  869.           that they    are 'internal' and not for public use.
  870.  
  871.           (It is actually possible to get private functions    by
  872.           saying:  my $subref = sub    { ... };  &$subref;.  But
  873.           there's no way to    call that directly as a    method,
  874.           because a    method must have a name    in the symbol table.)
  875.  
  876.           As a general rule, if the    module is trying to be object
  877.           oriented then export nothing. If it's just a collection
  878.           of functions then    @EXPORT_OK anything but    use @EXPORT
  879.           with caution.
  880.  
  881.       Select a name    for the    module.
  882.           This name    should be as descriptive, accurate, and
  883.           complete as possible.  Avoid any risk of ambiguity.
  884.           Always try to use    two or more whole words.  Generally
  885.           the name should reflect what is special about what the
  886.           module does rather than how it does it.  Please use
  887.           nested module names to group informally or categorize a
  888.           module.  There should be a very good reason for a    module
  889.           not to have a nested name.  Module names should begin
  890.           with a capital letter.
  891.  
  892.           Having 57    modules    all called Sort    will not make life
  893.           easy for anyone (though having 23    called Sort::Quick is
  894.           only marginally better :-).  Imagine someone trying to
  895.           install your module alongside many others.  If in    any
  896.           doubt ask    for suggestions    in comp.lang.perl.misc.
  897.  
  898.           If you are developing a suite of related modules/classes
  899.           it's good    practice to use    nested classes with a common
  900.           prefix as    this will avoid    namespace clashes. For
  901.           example: Xyz::Control, Xyz::View,    Xyz::Model etc.    Use
  902.           the modules in this list as a naming guide.
  903.  
  904.           If adding    a new module to    a set, follow the original
  905.           author's standards for naming modules and    the interface
  906.           to methods in those modules.
  907.  
  908.           To be portable each component of a module    name should be
  909.           limited to 11 characters.    If it might be used on MS-DOS
  910.           then try to ensure each is unique    in the first 8
  911.           characters. Nested modules make this easier.
  912.  
  913.       Have you got it right?
  914.           How do you know that you've made the right decisions?
  915.           Have you picked an interface design that will cause
  916.           problems later? Have you picked the most appropriate
  917.           name? Do you have    any questions?
  918.  
  919.  
  920.  
  921.      Page 14                        (printed 10/23/98)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  929.  
  930.  
  931.  
  932.           The best way to know for sure, and pick up many helpful
  933.           suggestions, is to ask someone who knows.
  934.           Comp.lang.perl.misc is read by just about    all the    people
  935.           who develop modules and it's the best place to ask.
  936.  
  937.           All you need to do is post a short summary of the
  938.           module, its purpose and interfaces. A few    lines on each
  939.           of the main methods is probably enough. (If you post the
  940.           whole module it might be ignored by busy people -
  941.           generally    the very people    you want to read it!)
  942.  
  943.           Don't worry about    posting    if you can't say when the
  944.           module will be ready - just say so in the    message. It
  945.           might be worth inviting others to    help you, they may be
  946.           able to complete it for you!
  947.  
  948.       README and other Additional Files.
  949.           It's well    known that software developers usually fully
  950.           document the software they write.    If, however, the world
  951.           is in urgent need    of your    software and there is not
  952.           enough time to write the full documentation please at
  953.           least provide a README file containing:
  954.  
  955.       +o A description of the module/package/extension etc.
  956.  
  957.       +o A copyright    notice - see below.
  958.  
  959.       +o Prerequisites - what else you may need to have.
  960.  
  961.       +o How    to build it - possible changes to Makefile.PL etc.
  962.  
  963.       +o How    to install it.
  964.  
  965.       +o Recent changes in this release, especially incompatibilities
  966.  
  967.       +o Changes / enhancements you plan to make in the future.
  968.  
  969.             If the README file seems to be getting too
  970.             large you may wish to split out    some of    the
  971.             sections into separate files: INSTALL,
  972.             Copying, ToDo etc.
  973.  
  974.       Adding a Copyright Notice.
  975.           How you choose to license your work is a personal
  976.           decision.  The general mechanism is to assert    your
  977.           Copyright and    then make a declaration    of how others
  978.           may copy/use/modify your work.
  979.  
  980.           Perl,    for example, is    supplied with two types    of
  981.           licence: The GNU GPL and The Artistic    Licence    (see
  982.           the files README, Copying, and Artistic).  Larry has
  983.           good reasons for NOT just using the GNU GPL.
  984.  
  985.  
  986.  
  987.      Page 15                        (printed 10/23/98)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  995.  
  996.  
  997.  
  998.           My personal recommendation, out of respect for
  999.           Larry, Perl, and the Perl community at large is to
  1000.           state    something simply like:
  1001.  
  1002.            Copyright (c) 1995 Your Name. All rights reserved.
  1003.            This    program    is free    software; you can redistribute it and/or
  1004.            modify it under the same terms as Perl itself.
  1005.  
  1006.           This statement should    at least appear    in the README
  1007.           file.    You may    also wish to include it    in a Copying
  1008.           file and your    source files.  Remember    to include the
  1009.           other    words in addition to the Copyright.
  1010.  
  1011.       Give the module a version/issue/release number.
  1012.           To be    fully compatible with the Exporter and
  1013.           MakeMaker modules you    should store your module's
  1014.           version number in a non-my package variable called
  1015.           $VERSION.  This should be a floating point number
  1016.           with at least    two digits after the decimal (i.e.,
  1017.           hundredths, e.g, $VERSION = "0.01").    Don't use a
  1018.           "1.3.2" style    version.  See Exporter.pm in
  1019.           Perl5.001m or    later for details.
  1020.  
  1021.           It may be handy to add a function or method to
  1022.           retrieve the number.    Use the    number in
  1023.           announcements    and archive file names when releasing
  1024.           the module (ModuleName-1.02.tar.Z).  See perldoc
  1025.           ExtUtils::MakeMaker.pm for details.
  1026.  
  1027.       How to release and distribute    a module.
  1028.           It's good idea to post an announcement of the
  1029.           availability of your module (or the module itself if
  1030.           small) to the    comp.lang.perl.announce    Usenet
  1031.           newsgroup.  This will    at least ensure    very wide
  1032.           once-off distribution.
  1033.  
  1034.           If possible you should place the module into a major
  1035.           ftp archive and include details of its location in
  1036.           your announcement.
  1037.  
  1038.           Some notes about ftp archives: Please    use a long
  1039.           descriptive file name    that includes the version
  1040.           number. Most incoming    directories will not be
  1041.           readable/listable, i.e., you won't be    able to    see
  1042.           your file after uploading it.    Remember to send your
  1043.           email    notification message as    soon as    possible after
  1044.           uploading else your file may get deleted
  1045.           automatically. Allow time for    the file to be
  1046.           processed and/or check the file has been processed
  1047.           before announcing its    location.
  1048.  
  1049.           FTP Archives for Perl    Modules:
  1050.  
  1051.  
  1052.  
  1053.      Page 16                        (printed 10/23/98)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  1061.  
  1062.  
  1063.  
  1064.           Follow the instructions and links on
  1065.  
  1066.              http://franz.ww.tu-berlin.de/modulelist
  1067.  
  1068.           or upload to one of these sites:
  1069.  
  1070.              ftp://franz.ww.tu-berlin.de/incoming
  1071.              ftp://ftp.cis.ufl.edu/incoming
  1072.  
  1073.           and notify <_u_p_l_o_a_d@_f_r_a_n_z._w_w._t_u-_b_e_r_l_i_n._d_e>.
  1074.  
  1075.           By using the WWW interface you can ask the Upload
  1076.           Server to mirror your    modules    from your ftp or WWW
  1077.           site into your own directory on CPAN!
  1078.  
  1079.           Please remember to send me an    updated    entry for the
  1080.           Module list!
  1081.  
  1082.       Take care when changing a released module.
  1083.           Always strive    to remain compatible with previous
  1084.           released versions.  Otherwise    try to add a mechanism
  1085.           to revert to the old behaviour if people rely    on it.
  1086.           Document incompatible    changes.
  1087.  
  1088.       GGGGuuuuiiiiddddeeeelllliiiinnnneeeessss ffffoooorrrr CCCCoooonnnnvvvveeeerrrrttttiiiinnnngggg PPPPeeeerrrrllll 4444 LLLLiiiibbbbrrrraaaarrrryyyy SSSSccccrrrriiiippppttttssss iiiinnnnttttoooo
  1089.       MMMMoooodddduuuulllleeeessss
  1090.  
  1091.       There    is no requirement to convert anything.
  1092.           If it ain't broke, don't fix it! Perl 4 library scripts
  1093.           should continue to work with no problems.    You may    need
  1094.           to make some minor changes (like escaping    non-array @'s
  1095.           in double    quoted strings)    but there is no    need to
  1096.           convert a    .pl file into a    Module for just    that.
  1097.  
  1098.       Consider the implications.
  1099.           All Perl applications that make use of the script    will
  1100.           need to be changed (slightly) if the script is converted
  1101.           into a module.  Is it worth it unless you    plan to    make
  1102.           other changes at the same    time?
  1103.  
  1104.       Make the most    of the opportunity.
  1105.           If you are going to convert the script to    a module you
  1106.           can use the opportunity to redesign the interface. The
  1107.           'Guidelines for Module Creation' above include many of
  1108.           the issues you should consider.
  1109.  
  1110.       The pl2pm utility will get you started.
  1111.           This utility will    read *.pl files    (given as parameters)
  1112.           and write    corresponding *.pm files. The pl2pm utilities
  1113.           does the following:
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.      Page 17                        (printed 10/23/98)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  1127.  
  1128.  
  1129.  
  1130.       +o Adds the standard Module prologue lines
  1131.  
  1132.       +o Converts package specifiers    from ' to ::
  1133.  
  1134.       +o Converts die(...) to croak(...)
  1135.  
  1136.       +o Several other minor    changes
  1137.  
  1138.             Being a    mechanical process pl2pm is not    bullet
  1139.             proof. The converted code will need careful
  1140.             checking, especially any package statements.
  1141.             Don't delete the original .pl file till    the
  1142.             new .pm    one works!
  1143.  
  1144.       GGGGuuuuiiiiddddeeeelllliiiinnnneeeessss ffffoooorrrr RRRReeeeuuuussssiiiinnnngggg AAAApppppppplllliiiiccccaaaattttiiiioooonnnn CCCCooooddddeeee
  1145.  
  1146.       Complete applications    rarely belong in the Perl Module Library.
  1147.  
  1148.       Many applications contain some Perl code that    could be reused.
  1149.           Help save    the world! Share your code in a    form that
  1150.           makes it easy to reuse.
  1151.  
  1152.      files.
  1153.       Break-out the    reusable code into one or more separate    module
  1154.  
  1155.       Take the opportunity to reconsider and redesign the interfaces.
  1156.  
  1157.       In some cases    the 'application' can then be reduced to a small
  1158.           fragment of code built on    top of the reusable modules.
  1159.           In these cases the application could invoked as:
  1160.  
  1161.            % perl -e 'use Module::Name;    method(@ARGV)' ...
  1162.           or
  1163.            % perl -mModule::Name ...    (in perl5.002 or higher)
  1164.  
  1165.  
  1166.      NNNNOOOOTTTTEEEE
  1167.       Perl does not    enforce    private    and public parts of its
  1168.       modules as you may have been used to in other    languages like
  1169.       C++, Ada, or Modula-17.  Perl    doesn't    have an    infatuation
  1170.       with enforced    privacy.  It would prefer that you stayed out
  1171.       of its living    room because you weren't invited, not because
  1172.       it has a shotgun.
  1173.  
  1174.       The module and its user have a contract, part    of which is
  1175.       common law, and part of which    is "written".  Part of the
  1176.       common law contract is that a    module doesn't pollute any
  1177.       namespace it wasn't asked to.     The written contract for the
  1178.       module (A.K.A. documentation)    may make other provisions.
  1179.       But then you know when you use RedefineTheWorld that you're
  1180.       redefining the world and willing to take the consequences.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.      Page 18                        (printed 10/23/98)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))   22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))     PPPPEEEERRRRLLLLMMMMOOOODDDDLLLLIIIIBBBB((((1111))))
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.      Page 19                        (printed 10/23/98)
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.