you didn't get your Perl source from CPAN, check the latest version at
<URL:http://www.perl.com/CPAN/src/>.
-The basic steps to build and install perl5 on a Unix system are:
+The basic steps to build and install perl5 on a Unix system
+with all the defaults are:
rm -f config.sh Policy.sh
sh Configure -de
pod/perldelta.pod file. For more detailed information about specific
changes, see the Changes file.
-IMPORTANT NOTE: 5.005_53 and later releases do not export unadorned
-global symbols anymore. This means you may need to build older
-extensions that have not been updated for the new naming convention
-with:
-
- perl Makefile.PL POLLUTE=1
-
-Alternatively, you can enable CPP symbol pollution wholesale by
-building perl itself with:
-
- sh Configure -Accflags=-DPERL_POLLUTE
-
-pod/perldelta.pod contains more details about this.
-
=head1 DESCRIPTION
This document is written in pod format as an easy way to indicate its
C<code> literal code
L<name> A link (cross reference) to name
-You should probably at least skim through this entire document before
+Although most of the defaults are probably fine for most users,
+you should probably at least skim through this entire document before
proceeding.
If you're building Perl on a non-Unix system, you should also read
there is a README file for your platform, then you should read
that too. Additional information is in the Porting/ directory.
+=head1 WARNING: This version requires an extra step to build old extensions.
+
+5.005_53 and later releases do not export unadorned
+global symbols anymore. This means you may need to build older
+extensions that have not been updated for the new naming convention
+with:
+
+ perl Makefile.PL POLLUTE=1
+
+Alternatively, you can enable CPP symbol pollution wholesale by
+building perl itself with:
+
+ sh Configure -Accflags=-DPERL_POLLUTE
+
+pod/perldelta.pod contains more details about this.
+
=head1 WARNING: This version may not be binary compatible with Perl 5.005.
Using the default Configure options for building perl should get you
On a related issue, old modules may possibly be affected by the
changes in the Perl language in the current release. Please see
pod/perldelta.pod (and pod/perl500Xdelta.pod) for a description of
-what's changed. See also your installed copy of the perllocal.pod
+what's changed. See your installed copy of the perllocal.pod
file for a (possibly incomplete) list of locally installed modules.
Also see CPAN::autobundle for one way to make a "bundle" of your
currently installed modules.
=head1 Space Requirements
-The complete perl5 source tree takes up about 15 MB of disk space.
-After completing make, it takes up roughly 20 MB, though the actual
+The complete perl5 source tree takes up about 20 MB of disk space.
+After completing make, it takes up roughly 30 MB, though the actual
total is likely to be quite system-dependent. The installation
-directories need something on the order of 15 MB, though again that
+directories need something on the order of 20 MB, though again that
value is system-dependent.
=head1 Start with a Fresh Distribution
=item Directories for the perl distribution
-By default, Configure will use the following directories for 5.6.
+By default, Configure will use the following directories for 5.6.0.
$version is the full perl version number, including subversion, e.g.
5.6.0 or 5.6.1, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
After perl is installed, you may later wish to add modules (e.g. from
CPAN) or scripts. Configure will set up the following directories to
-be used for installing those add-on modules and scripts. $version
-is the perl version number, e.g. 5.6.0.
+be used for installing those add-on modules and scripts.
Configure variable Default value
$siteprefix $prefix
to contain any valid shell commands. It will be run just after the
platform-specific hints files.
-Note: Since the directory hierarchy for 5.6 contains a number of
+Note: Since the directory hierarchy for 5.6.0 contains a number of
new vendor* and site* entries, your Policy.sh file will probably not
set them to your desired values. I encourage you to run Configure
interactively to be sure it puts things where you want them.
built by default, but you can skip it by setting the Configure variable
useopcode=false either in a hint file for from the command line.
-You can learn more about each of these extensions by consulting the
+If you unpack any additional extensions in the ext/ directory before
+running Configure, then Configure will offer to build those additional
+extensions as well. Most users probably shouldn't have to do this --
+it is usually easier to build additional extensions later after perl
+has been installed. However, if you wish to have those additional
+extensions statically linked into the perl binary, then this offers a
+convenient way to do that in one step. (It is not necessary, however;
+you can build and install extensions just fine even if you don't have
+dynamic loading. See lib/ExtUtils/MakeMaker.pm for more details.)
+
+You can learn more about each of the supplied extensions by consulting the
documentation in the individual .pm modules, located under the
ext/ subdirectory.
=item No sh
-If you don't have sh, you'll have to copy the sample file Porting/config_H
-to config.h and edit the config.h to reflect your system's peculiarities.
+If you don't have sh, you'll have to copy the sample file
+Porting/config.sh to config.sh and edit your config.sh to reflect your
+system's peculiarities. See Porting/pumpkin.pod for more information.
You'll probably also have to extensively modify the extension building
mechanism.
Specific information for the OS/2, Plan9, VMS and Win32 ports is in the
corresponding README files and subdirectories. Additional information,
including a glossary of all those config.sh variables, is in the Porting
-subdirectory. Especially Porting/Glossary should come in handy.
+subdirectory. Especially Porting/Glossary should come in handy.
Ports for other systems may also be available. You should check out
http://www.perl.com/CPAN/ports for current information on ports to
/usr/local/lib/perl5/site_perl/5.005/$archname
/usr/local/lib/perl5/site_perl/5.005
+ /usr/local/lib/perl5/site_perl/
-Notice the last two entries -- Perl understands the default structure
+Notice the last three entries -- Perl understands the default structure
of the $sitelib directories and will look back in older, compatible
directories. This way, modules installed under 5.005_03 will continue
to be usable by 5.005_03 but will also accessible to 5.6.0. Further,
/usr/local/lib/perl5/site_perl/5.6.0 and will be available to 5.6.0,
but will not interfere with the 5.005_03 version.
-Also, by default, 5.6.0 will look in
-
- /usr/local/lib/perl5/site_perl/
-
-for 5.004-era pure perl modules.
+The last entry, /usr/local/lib/perl5/site_perl/, is there so that
+5.6.0 will look for 5.004-era pure perl modules.
Lastly, suppose you now install version 5.6.1, which we'll assume is
binary compatible with 5.6.0 and 5.005. The directories searched
=head2 Upgrading from 5.005 to 5.6.0
-Extensions built and installed with versions of perl prior to 5.005_50
-will need to be recompiled to be used with 5.005_50 and later. You will,
-however, be able to continue using 5.005 even after you install 5.6.
-The 5.005 binary will still be able to find the modules built under
-5.005; the 5.6.0 binary will look in the new $sitearch and $sitelib
-directories, and will not find them. See also your installed copy
-of the perllocal.pod file for a (possibly incomplete) list of locally
-installed modules. Note that you want perllocal.pod not perllocale.pod
-for installed module information.
+Most extensions built and installed with versions of perl
+prior to 5.005_50 will not need to be recompiled to be used with
+5.6.0. If you find you do need to rebuild an extension with 5.6.0,
+you may safely do so without disturbing the 5.005 installation.
+(See L<"Coexistence with earlier versions of perl5"> above.)
+
+See your installed copy of the perllocal.pod file for a (possibly
+incomplete) list of locally installed modules. Note that you want
+perllocal.pod not perllocale.pod for installed module information.
=head1 Coexistence with perl4