[inseparable changes from match from perl-5.003_97b to perl-5.003_97c]
[p5sagit/p5-mst-13.2.git] / pod / perlmod.pod
index 3f6c198..cfdcdda 100644 (file)
@@ -41,7 +41,7 @@ package's symbol table.  All other symbols are kept in package C<main>,
 including all of the punctuation variables like $_.  In addition, the
 identifiers STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC, and SIG are
 forced to be in package C<main>, even when used for other purposes than
-their built-in one.  Note also that, if you have a package called C<m>,
+their builtin one.  Note also that, if you have a package called C<m>,
 C<s>, or C<y>, then you can't use the qualified form of an identifier
 because it will be interpreted instead as a pattern match, a substitution,
 or a translation.
@@ -77,8 +77,8 @@ use the C<*name> typeglob notation.  In fact, the following have the same
 effect, though the first is more efficient because it does the symbol
 table lookups at compile time:
 
-    local(*main::foo) = *main::bar; local($main::{'foo'}) =
-    $main::{'bar'};
+    local(*main::foo) = *main::bar;
+    local($main::{'foo'}) = $main::{'bar'};
 
 You can use this to print out all the variables in a package, for
 instance.  Here is F<dumpvar.pl> from the Perl library:
@@ -328,7 +328,7 @@ the rest of the current file.  This will not work if you use C<require>
 instead of C<use>.  With require you can get into this problem:
 
     require Cwd;               # make Cwd:: accessible
-    $here = Cwd::getcwd();     
+    $here = Cwd::getcwd();
 
     use Cwd;                   # import names from Cwd::
     $here = getcwd();
@@ -381,7 +381,7 @@ F<.pl> files will all eventually be converted into standard modules, and
 the F<.ph> files made by B<h2ph> will probably end up as extension modules
 made by B<h2xs>.  (Some F<.ph> values may already be available through the
 POSIX module.)  The B<pl2pm> file in the distribution may help in your
-conversion, but it's just a mechanical process and therefore far from 
+conversion, but it's just a mechanical process and therefore far from
 bulletproof.
 
 =head2 Pragmatic Modules
@@ -398,7 +398,7 @@ which lasts until the end of that BLOCK.
 
 Unlike the pragmas that effect the C<$^H> hints variable, the C<use
 vars> and C<use subs> declarations are not BLOCK-scoped.  They allow
-you to pre-declare a variables or subroutines within a particular
+you to predeclare a variables or subroutines within a particular
 I<file> rather than just a block.  Such declarations are effective
 for the entire file for which they were declared.  You cannot rescind
 them with C<no vars> or C<no subs>.
@@ -430,7 +430,7 @@ manipulate @INC at compile time
 
 =item locale
 
-use or ignore current locale for built-in operations (see L<perllocale>)
+use or ignore current locale for builtin operations (see L<perllocale>)
 
 =item ops
 
@@ -450,7 +450,7 @@ restrict unsafe constructs
 
 =item subs
 
-pre-declare sub names
+predeclare sub names
 
 =item vmsish
 
@@ -458,7 +458,7 @@ adopt certain VMS-specific behaviors
 
 =item vars
 
-pre-declare global variable names
+predeclare global variable names
 
 =back
 
@@ -502,9 +502,9 @@ run CPAN while avoiding compiled extensions
 
 warn of errors (from perspective of caller)
 
-=item Class::Template
+=item Class::Struct
 
-struct/member template builder
+declare struct-like datatypes
 
 =item Config
 
@@ -556,7 +556,7 @@ determine libraries to use and how to use them
 
 =item ExtUtils::MM_OS2
 
-methods to override UN*X behaviour in ExtUtils::MakeMaker
+methods to override Unix behaviour in ExtUtils::MakeMaker
 
 =item ExtUtils::MM_Unix
 
@@ -564,7 +564,7 @@ methods used by ExtUtils::MakeMaker
 
 =item ExtUtils::MM_VMS
 
-methods to override UN*X behaviour in ExtUtils::MakeMaker
+methods to override Unix behaviour in ExtUtils::MakeMaker
 
 =item ExtUtils::MakeMaker
 
@@ -616,7 +616,7 @@ create or remove a series of directories
 
 =item File::stat
 
-by-name interface to Perl's built-in stat() functions
+by-name interface to Perl's builtin stat() functions
 
 =item FileCache
 
@@ -704,19 +704,19 @@ Hello, anybody home?
 
 =item Net::hostent
 
-by-name interface to Perl's built-in gethost*() functions
+by-name interface to Perl's builtin gethost*() functions
 
 =item Net::netent
 
-by-name interface to Perl's built-in getnet*() functions
+by-name interface to Perl's builtin getnet*() functions
 
 =item Net::protoent
 
-by-name interface to Perl's built-in getproto*() functions
+by-name interface to Perl's builtin getproto*() functions
 
 =item Net::servent
 
-by-name interface to Perl's built-in getserv*() functions
+by-name interface to Perl's builtin getserv*() functions
 
 =item Opcode
 
@@ -768,7 +768,7 @@ try every conceivable way to get hostname
 
 =item Sys::Syslog
 
-interface to the UNIX syslog(3) calls
+interface to the Unix syslog(3) calls
 
 =item Term::Cap
 
@@ -800,7 +800,7 @@ implementation of the Soundex Algorithm as described by Knuth
 
 =item Text::Tabs
 
-expand and unexpand tabs per the unix expand(1) and unexpand(1)
+expand and unexpand tabs per the Unix expand(1) and unexpand(1)
 
 =item Text::Wrap
 
@@ -828,11 +828,11 @@ efficiently compute time from local and GMT time
 
 =item Time::gmtime
 
-by-name interface to Perl's built-in gmtime() function
+by-name interface to Perl's builtin gmtime() function
 
 =item Time::localtime
 
-by-name interface to Perl's built-in localtime() function
+by-name interface to Perl's builtin localtime() function
 
 =item Time::tm
 
@@ -844,11 +844,11 @@ base class for ALL classes (blessed references)
 
 =item User::grent
 
-by-name interface to Perl's built-in getgr*() functions
+by-name interface to Perl's builtin getgr*() functions
 
 =item User::pwent
 
-by-name interface to Perl's built-in getpw*() functions
+by-name interface to Perl's builtin getpw*() functions
 
 =back
 
@@ -862,7 +862,8 @@ your system man(1) command.  If that fails, try the I<perldoc> program.
 
 =head2 Extension Modules
 
-Extension modules are written in C (or a mix of Perl and C) and get
+Extension modules are written in C (or a mix of Perl and C) and may be
+statically linked or in general are
 dynamically loaded into Perl if and when you need them.  Supported
 extension modules include the Socket, Fcntl, and POSIX modules.
 
@@ -1004,7 +1005,6 @@ Europe
     Spain           ftp://ftp.etse.urv.es/pub/mirror/perl/
                     ftp://ftp.rediris.es/mirror/CPAN/
     Sweden          ftp://ftp.sunet.se/pub/lang/perl/CPAN/
-    Switzerland     ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
     UK              ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
                     ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
                     ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/
@@ -1016,7 +1016,7 @@ North America
                     ftp://enterprise.ic.gc.ca/pub/perl/CPAN/
     Manitoba        ftp://theory.uwinnipeg.ca/pub/CPAN/
     California      ftp://ftp.digital.com/pub/plan/perl/CPAN/
-                    ftp://ftp.cdrom.com/pub/perl/
+                    ftp://ftp.cdrom.com/pub/perl/CPAN/
     Colorado        ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
     Florida         ftp://ftp.cis.ufl.edu/pub/perl/CPAN/
     Illinois        ftp://uiarchive.uiuc.edu/pub/lang/perl/CPAN/
@@ -1024,11 +1024,11 @@ North America
     New York        ftp://ftp.rge.com/pub/languages/perl/
     North Carolina  ftp://ftp.duke.edu/pub/perl/
     Oklahoma        ftp://ftp.ou.edu/mirrors/CPAN/
-    Oregon          ftp://ftp.orst.edu/pub/packages/CPAN/
+    Oregon          http://www.perl.org/CPAN/
+                    ftp://ftp.orst.edu/pub/packages/CPAN/
     Pennsylvania    ftp://ftp.epix.net/pub/languages/perl/
     Texas           ftp://ftp.sedl.org/pub/mirrors/CPAN/
                     ftp://ftp.metronet.com/pub/perl/
-    Washington      ftp://ftp.spu.edu/pub/CPAN/
 
 =item *
 South America
@@ -1106,7 +1106,7 @@ Inherit methods from other modules if appropriate.
 
 Avoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>.
 Generally you can delete the "C<eq 'FOO'>" part with no harm at all.
-Let the objects look after themselves! Generally, avoid hardwired
+Let the objects look after themselves! Generally, avoid hard-wired
 class names as far as possible.
 
 Avoid C<$r-E<gt>Class::func()> where using C<@ISA=qw(... Class ...)> and
@@ -1118,7 +1118,7 @@ the module after __END__ either using AutoSplit or by saying:
 
  eval join('',<main::DATA>) || die $@ unless caller();
 
-Does your module pass the 'empty sub-class' test? If you say
+Does your module pass the 'empty subclass' test? If you say
 "C<@SUBCLASS::ISA = qw(YOURCLASS);>" your applications should be able
 to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
 does your application still work if you change:  C<$obj = new YOURCLASS;>
@@ -1214,7 +1214,7 @@ standards for naming modules and the interface to methods in
 those modules.
 
 To be portable each component of a module name should be limited to
-11 characters. If it might be used on DOS then try to ensure each is
+11 characters. If it might be used on MS-DOS then try to ensure each is
 unique in the first 8 characters. Nested modules make this easier.
 
 =item Have you got it right?
@@ -1280,8 +1280,8 @@ How you choose to license your work is a personal decision.
 The general mechanism is to assert your Copyright and then make
 a declaration of how others may copy/use/modify your work.
 
-Perl, for example, is supplied with two types of license: The GNU
-GPL and The Artistic License (see the files README, Copying, and
+Perl, for example, is supplied with two types of licence: The GNU
+GPL and The Artistic Licence (see the files README, Copying, and
 Artistic).  Larry has good reasons for NOT just using the GNU GPL.
 
 My personal recommendation, out of respect for Larry, Perl, and the
@@ -1429,6 +1429,6 @@ the application could invoked as:
 
      perl -e 'use Module::Name; method(@ARGV)' ...
 or
-     perl -mModule::Name ...    (in perl5.002)
+     perl -mModule::Name ...    (in perl5.002 or higher)
 
 =back