This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Retract #14985, #14899, and #14990, following the principles
[perl5.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index f961024..9568cda 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -42,8 +42,13 @@ on the platform.  If that's not okay with you, use
        make test
        make install
 
-For information on non-Unix systems, see the section on
-L<"Porting information"> below.
+For information on non-Unix systems, see the section on L<"Porting
+information"> below.
+
+If "make install" just says "`install' is up to date" or something
+similar, you may be on case-preserving filesystems such as Mac's HFS+
+and you should say "make install-all".  (This confusion brought to you
+by the Perl distribution having a file called INSTALL.)
 
 If you have problems, corrections, or questions, please see
 L<"Reporting Problems"> below.
@@ -69,7 +74,10 @@ proceeding.
 
 If you're building Perl on a non-Unix system, you should also read
 the README file specific to your operating system, since this may
-provide additional or different instructions for building Perl.
+provide additional or different instructions for building Perl. There
+are also README files for several flavors of Unix systems, such as
+Solaris, HP-UX, and AIX; if you have one of those systems, you should
+also read the README file specific to that system.
 
 If there is a hint file for your system (in the hints/ directory) you
 should also read that hint file for specific information for your
@@ -85,7 +93,7 @@ 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:
 
@@ -178,10 +186,10 @@ does not work with some C++ compilers.
 
 =head1 Space Requirements
 
-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
+The complete perl5 source tree takes up about 40 MB of disk space.
+After completing make, it takes up roughly 60 MB, though the actual
 total is likely to be quite system-dependent.  The installation
-directories need something on the order of 20 MB, though again that
+directories need something on the order of 35 MB, though again that
 value is system-dependent.
 
 =head1 Start with a Fresh Distribution
@@ -264,6 +272,28 @@ For more help on Configure switches, run:
 
        sh Configure -h
 
+=head2 Building Perl outside of the source directory
+
+Sometimes it is desirable to build Perl in a directory different from
+where the sources are, for example if you want to keep your sources
+read-only, or if you want to share the sources between different binary
+architectures.
+
+Starting from Perl 5.6.1 you can do this (if your file system supports
+symbolic links) by
+       
+       mkdir /tmp/perl/build/directory
+       cd /tmp/perl/build/directory
+       sh /path/to/perl/source/Configure -Dmksymlinks ...
+
+This will create in /tmp/perl/build/directory a tree of symbolic links
+pointing to files in /path/to/perl/source.  The original files are left
+unaffected.  After Configure has finished you can just say
+
+       make all test
+
+and Perl will be built and tested, all in /tmp/perl/build/directory.
+
 =head2 Common Configure options
 
 Configure supports a number of useful options.  Run B<Configure -h> to
@@ -517,6 +547,23 @@ directories to add to @INC.  By default, it will be empty.
 Perl will search these directories (including architecture and
 version-specific subdirectories) for add-on modules and extensions.
 
+=item APPLLIB_EXP
+
+There is one other way of adding paths to @INC at perl build time, and
+that is by setting the APPLLIB_EXP C pre-processor token to a colon-
+separated list of directories, like this
+
+       sh Configure -Accflags='-DAPPLLIB_EXP=\"/usr/libperl\"'
+
+The directories defined by APPLLIB_EXP get added to @INC I<first>,
+ahead of any others, and so provide a way to override the standard perl
+modules should you, for example, want to distribute fixes without
+touching the perl distribution proper.  And, like otherlib dirs,
+version and architecture specific subdirectories are also searched, if
+present, at run time.  Of course, you can still search other @INC
+directories ahead of those in APPLLIB_EXP by using any of the standard
+run-time methods: $PERLLIB, $PERL5LIB, -I, use lib, etc.
+
 =item Man Pages
 
 In versions 5.005_57 and earlier, the default was to store module man
@@ -686,11 +733,30 @@ or by
 Eventually (by perl v5.6.0) this internal confusion ought to disappear,
 and these options may disappear as well.
 
+=head2 Large file support.
+
+Since Perl 5.6.0 Perl has supported large files (files larger than
+2 gigabytes), and in many common platforms like Linux or Solaris this
+support is on by default.
+
+This is both good and bad. It is good in that you can use large files,
+seek(), stat(), and -s them.  It is bad if you are interfacing Perl
+using some extension, also the components you are connecting to must
+be large file aware: if Perl thinks files can be large but the other
+parts of the software puzzle do not understand the concept, bad things
+will happen.  One popular extension suffering from this ailment is the
+Apache extension mod_perl.
+
+There's also one known limitation with the current large files
+implementation: unless you also have 64-bit integers (see the next
+section), you cannot use the printf/sprintf non-decimal integer
+formats like C<%x> to print filesizes.  You can use C<%d>, though.
+
 =head2 64 bit support.
 
-If your platform does not have 64 bits natively, but can simulate them with
-compiler flags and/or C<long long> or C<int64_t>, you can build a perl that
-uses 64 bits.
+If your platform does not have 64 bits natively, but can simulate them
+with compiler flags and/or C<long long> or C<int64_t>, you can build a
+perl that uses 64 bits.
 
 There are actually two modes of 64-bitness: the first one is achieved
 using Configure -Duse64bitint and the second one using Configure
@@ -852,8 +918,8 @@ You can elect to build a shared libperl by
 
 To build a shared libperl, the environment variable controlling shared
 library search (LD_LIBRARY_PATH in most systems, DYLD_LIBRARY_PATH for
-NeXTSTEP/OPENSTEP/Darwin, LIBRARY_PATH for BeOS, SHLIB_PATH for
-HP-UX, LIBPATH for AIX, PATH for Cygwin) must be set up to include
+NeXTSTEP/OPENSTEP/Darwin, LIBRARY_PATH for BeOS, LD_LIBRARY_PATH/SHLIB_PATH
+for HP-UX, LIBPATH for AIX, PATH for Cygwin) must be set up to include
 the Perl build directory because that's where the shared libperl will
 be created.  Configure arranges makefile to have the correct shared
 library search settings.
@@ -985,16 +1051,16 @@ versions of perl under L<Building a shared libperl.so Perl library>.
 
 =head2 Extensions
 
+Perl ships with a number of standard extensions.  These are contained
+in the ext/ subdirectory.
+
 By default, Configure will offer to build every extension which appears
 to be supported.  For example, Configure will offer to build GDBM_File
 only if it is able to find the gdbm library.  (See examples below.)
-B, DynaLoader, Fcntl, IO, and attrs are always built by default.
 Configure does not contain code to test for POSIX compliance, so POSIX
 is always built by default as well.  If you wish to skip POSIX, you can
 set the Configure variable useposix=false either in a hint file or from
-the Configure command line.  Similarly, the Opcode extension is always
-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.
+the Configure command line.
 
 If you unpack any additional extensions in the ext/ directory before
 running Configure, then Configure will offer to build those additional
@@ -1015,22 +1081,17 @@ DynaLoader extension; you should just build the stub dl_none.xs
 version.  (Configure will suggest this as the default.)
 
 In summary, here are the Configure command-line variables you can set
-to turn off each extension:
+to turn off various extensions.  All others are included by default.
 
-    B                  (Always included by default)
     DB_File            i_db
     DynaLoader         (Must always be included as a static extension)
-    Fcntl              (Always included by default)
     GDBM_File          i_gdbm
-    IO                 (Always included by default)
     NDBM_File          i_ndbm
     ODBM_File          i_dbm
     POSIX              useposix
-    SDBM_File          (Always included by default)
     Opcode             useopcode
     Socket             d_socket
     Threads            use5005threads
-    attrs              (Always included by default)
 
 Thus to skip the NDBM_File extension, you can use
 
@@ -1052,7 +1113,7 @@ adding libgdbm) Configure will still offer your old choices of extensions
 for the default answer, but it will also point out the discrepancy to
 you.
 
-Finally, if you have dynamic loading (most modern Unix systems do)
+Finally, if you have dynamic loading (most modern systems do)
 remember that these extensions do not increase the size of your perl
 executable, nor do they impact start-up time, so you probably might as
 well build all the ones that will work on your system.
@@ -1131,6 +1192,39 @@ you have some libraries under /usr/local/ and others under
 
 =back
 
+=head2 Building DB, NDBM, and ODBM interfaces with Berkeley DB 3
+
+Perl interface for DB3 is part of Berkeley DB, but if you want to
+compile standard Perl DB/ODBM/NDBM interfaces, you must follow
+following instructions.
+
+Berkeley DB3 from Sleepycat Software is by default installed without
+DB1 compatibility code (needed for DB_File interface) and without
+links to compatibility files. So if you want to use packages written
+for DB/ODBM/NDBM interfaces, you need to configure DB3 with
+--enable-compat185 (and optionally with --enable-dump185) and create
+additional references (suppose you are installing DB3 with
+--prefix=/usr):
+
+    ln -s libdb-3.so /usr/lib/libdbm.so
+    ln -s libdb-3.so /usr/lib/libndbm.so
+    echo '#define DB_DBM_HSEARCH 1' >dbm.h 
+    echo '#include <db.h>' >>dbm.h
+    install -m 0644 dbm.h /usr/include/dbm.h 
+    install -m 0644 dbm.h /usr/include/ndbm.h
+
+Optionally, if you have compiled with --enable-compat185 (not needed
+for ODBM/NDBM):
+
+    ln -s libdb-3.so /usr/lib/libdb1.so
+    ln -s libdb-3.so /usr/lib/libdb.so
+
+ODBM emulation seems not to be perfect, but is quite usable,
+using DB 3.1.17:
+
+    lib/odbm.............FAILED at test 9
+        Failed 1/64 tests, 98.44% okay
+
 =head2 What if it doesn't work?
 
 If you run into problems, try some of the following ideas.
@@ -1221,12 +1315,18 @@ You will then have to rebuild by running
        make depend
        make
 
-=item config.over
+=item config.over and config.arch
 
-You can also supply a shell script config.over to over-ride Configure's
-guesses.  It will get loaded up at the very end, just before config.sh
-is created.  You have to be careful with this, however, as Configure
-does no checking that your changes make sense.
+You can also supply a shell script config.over to over-ride
+Configure's guesses.  It will get loaded up at the very end, just
+before config.sh is created.  You have to be careful with this,
+however, as Configure does no checking that your changes make sense.
+This file is usually good for site-specific customizations.
+
+There is also another file that, if it exists, is loaded before the
+config.over, called config.arch.  This file is intended to be per
+architecture, not per site, and usually it's the architecture-specific
+hints file that creates the config.arch.
 
 =item config.h
 
@@ -1308,7 +1408,7 @@ including a glossary of all those config.sh variables, is in the Porting
 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
+http://www.cpan.org/ports for current information on ports to
 various other operating systems.
 
 If you plan to port Perl to a new architecture study carefully the
@@ -1318,6 +1418,50 @@ Study also how other non-UNIX ports have solved problems.
 
 =back
 
+=head1 Adding extra modules to the build
+
+You can specify extra modules or module bundles to be fetched from the
+CPAN and installed as part of the Perl build.  Either use the -Dextras=...
+command line parameter to Configure, for example like this:
+
+       Configure -Dextras="Compress::Zlib Bundle::LWP DBI"
+
+or answer first 'y' to the question 'Install any extra modules?' and
+then answer "Compress::Zlib Bundle::LWP DBI" to the 'Extras?' question.
+The module or the bundle names are as for the CPAN module 'install' command.
+
+Notice that because the CPAN module will be used to fetch the extra
+modules, you will need access to the CPAN, either via the Internet,
+or via a local copy such as a CD-ROM or a local CPAN mirror.  If you
+do not, using the extra modules option will die horribly.
+
+Also notice that you yourself are responsible for satisfying any extra
+dependencies such as external headers or libraries BEFORE trying the build.
+For example: you will need to have the zlib.h header and the libz
+library installed for the Compress::Zlib, or the Foo database specific
+headers and libraries installed for the DBD::Foo module.  The Configure
+process or the Perl build process will not help you with these.
+
+=head1 suidperl
+
+suidperl is an optional component, which is built or installed by default.
+From perlfaq1:
+
+       On some systems, setuid and setgid scripts (scripts written
+        in the C shell, Bourne shell, or Perl, for example, with the
+        set user or group ID permissions enabled) are insecure due to
+        a race condition in the kernel. For those systems, Perl versions
+        5 and 4 attempt to work around this vulnerability with an optional
+        component, a special program named suidperl, also known as sperl.
+        This program attempts to emulate the set-user-ID and set-group-ID
+        features of the kernel.
+
+Because of the buggy history of suidperl, and the difficulty
+of properly security auditing as large and complex piece of
+software as Perl, we cannot recommend using suidperl and the feature
+should be considered deprecated.
+Instead use for example 'sudo': http://www.courtesan.com/sudo/
+
 =head1 make depend
 
 This will look for all the includes.  The output is stored in makefile.
@@ -1397,36 +1541,6 @@ numbers and function name may vary in different versions of perl):
 it might well be a symptom of the gcc "varargs problem".  See the
 previous L<"varargs"> item.
 
-=item Solaris and SunOS dynamic loading
-
-If you have problems with dynamic loading using gcc on SunOS or
-Solaris, and you are using GNU as and GNU ld, you may need to add
--B/bin/ (for SunOS) or -B/usr/ccs/bin/ (for Solaris) to your
-$ccflags, $ldflags, and $lddlflags so that the system's versions of as
-and ld are used.  Note that the trailing '/' is required.
-Alternatively, you can use the GCC_EXEC_PREFIX
-environment variable to ensure that Sun's as and ld are used.  Consult
-your gcc documentation for further information on the -B option and
-the GCC_EXEC_PREFIX variable.
-
-One convenient way to ensure you are not using GNU as and ld is to
-invoke Configure with
-
-    sh Configure -Dcc='gcc -B/usr/ccs/bin/'
-
-for Solaris systems.  For a SunOS system, you must use -B/bin/
-instead.
-
-Alternatively, recent versions of GNU ld reportedly work if you
-include C<-Wl,-export-dynamic> in the ccdlflags variable in
-config.sh.
-
-=item ld.so.1: ./perl: fatal: relocation error:
-
-If you get this message on SunOS or Solaris, and you're using gcc,
-it's probably the GNU as or GNU ld problem in the previous item
-L<"Solaris and SunOS dynamic loading">.
-
 =item LD_LIBRARY_PATH
 
 If you run into dynamic loading problems, check your setting of
@@ -1435,18 +1549,6 @@ Perl library (libperl.a rather than libperl.so) it should build
 fine with LD_LIBRARY_PATH unset, though that may depend on details
 of your local set-up.
 
-=item dlopen: stub interception failed
-
-The primary cause of the 'dlopen: stub interception failed' message is
-that the LD_LIBRARY_PATH environment variable includes a directory
-which is a symlink to /usr/lib (such as /lib).
-
-The reason this causes a problem is quite subtle.  The file libdl.so.1.0
-actually *only* contains functions which generate 'stub interception
-failed' errors!  The runtime linker intercepts links to
-"/usr/lib/libdl.so.1.0" and links in internal implementation of those
-functions instead.  [Thanks to Tim Bunce for this explanation.]
-
 =item nm extraction
 
 If Configure seems to be having trouble finding library functions,
@@ -1632,24 +1734,11 @@ official site named at the start of this document.  If you do find
 that any site is carrying a corrupted or incomplete source code
 archive, please report it to the site's maintainer.
 
-This message can also be a symptom of using (say) a GNU tar compiled
-for SunOS4 on Solaris.  When you run SunOS4 binaries on Solaris the
-run-time system magically alters pathnames matching m#lib/locale# - so
-when tar tries to create lib/locale.pm a differently-named file gets
-created instead.
-
-You may find the file under its assumed name and be able to rename it
-back.  Or use Sun's tar to do the extract.
-
 =item invalid token: ##
 
 You are using a non-ANSI-compliant C compiler.  See L<WARNING:  This
 version requires a compiler that supports ANSI C>.
 
-=item lib/locale.pm: No such file or directory
-
-See L<THIS PACKAGE SEEMS TO BE INCOMPLETE>.
-
 =item Miscellaneous
 
 Some additional things that have been reported for either perl4 or perl5:
@@ -1676,6 +1765,110 @@ break utime() so that over NFS the timestamps do not get changed
 
 =back
 
+=head2 Cross-compilation
+
+Starting from Perl 5.8 Perl has the beginnings of cross-compilation
+support.  What is known to work is running Configure in a
+cross-compilation environment and building the miniperl executable.
+What is known not to work is building the perl executable because
+that would require building extensions: Dynaloader statically and
+File::Glob dynamically, for extensions one needs MakeMaker and
+MakeMaker is not yet cross-compilation aware, and neither is
+the main Makefile.
+
+Since the functionality is so lacking, it must be considered
+highly experimental.  It is so experimental that it is not even
+mentioned during an interactive Configure session, a direct command
+line invocation (detailed shortly) is required to access the
+functionality.
+
+    NOTE: Perl is routinely built using cross-compilation
+    in the EPOC environment but the solutions from there
+    can't directly be used elsewhere.
+
+The one environment where cross-compilation has successfully been used
+as of this writing is the Compaq iPAQ running ARM Linux.  The build
+host was Intel Linux, the networking setup was PPP + SSH.  The exact
+setup details are beyond the scope of this document, see
+http://www.handhelds.org/ for more information.
+
+To run Configure in cross-compilation mode the basic switch is
+C<-Dusecrosscompile>.
+
+   sh ./Configure -des -Dusecrosscompile -D...
+
+This will make the cpp symbol USE_CROSS_COMPILE and the %Config
+symbol C<usecrosscompile> available.
+
+During the Configure and build, certain helper scripts will be created
+into the Cross/ subdirectory.  The scripts are used to execute a
+cross-compiled executable, and to transfer files to and from the
+target host.  The execution scripts are named F<run-*> and the
+transfer scripts F<to-*> and F<from-*>.  The part after the dash is
+the method to use for remote execution and transfer: by default the
+methods are B<ssh> and B<scp>, thus making the scripts F<run-ssh>,
+F<to-scp>, and F<from-scp>.
+
+To configure the scripts for a target host and a directory (in which
+the execution will happen and which is to and from where the transfer
+happens), supply Configure with
+
+    -Dtargethost=so.me.ho.st -Dtargetdir=/tar/get/dir
+
+The targethost is what e.g. ssh will use as the hostname, the targetdir
+must exist (the scripts won't create it), the targetdir defaults to /tmp.
+You can also specify a username to use for ssh/rsh logins
+
+    -Dtargetuser=luser
+
+but in case you don't, "root" will be used.
+
+Because this is a cross-compilation effort, you will also need to specify
+which target environment and which compilation environment to use.
+This includes the compiler, the header files, and the libraries.
+In the below we use the usual settings for the iPAQ cross-compilation
+environment:
+
+    -Dtargetarch=arm-linux
+    -Dcc=arm-linux-gcc
+    -Dusrinc=/skiff/local/arm-linux/include
+    -Dincpth=/skiff/local/arm-linux/include
+    -Dlibpth=/skiff/local/arm-linux/lib
+
+If the name of the C<cc> has the usual GNU C semantics for cross
+compilers, that is, CPU-OS-gcc, the names of the C<ar>, C<nm>, and
+C<ranlib> will also be automatically chosen to be CPU-OS-ar and so on.
+(The C<ld> requires more thought and will be chosen later by Configure
+as appropriate.)  Also, in this case the incpth, libpth, and usrinc
+will be guessed by Configure (unless explicitly set to something else,
+in which case Configure's guesses with be appended).
+
+In addition to the default execution/transfer methods you can also
+choose B<rsh> for execution, and B<rcp> or B<cp> for transfer,
+for example:
+
+    -Dtargetrun=rsh -Dtargetto=rcp -Dtargetfrom=cp
+
+Putting it all together:
+
+    sh ./Configure -des -Dusecrosscompile \
+        -Dtargethost=so.me.ho.st \
+       -Dtargetdir=/tar/get/dir \
+        -Dtargetuser=root \
+        -Dtargetarch=arm-linux \
+        -Dcc=arm-linux-gcc \
+        -Dusrinc=/skiff/local/arm-linux/include \
+        -Dincpth=/skiff/local/arm-linux/include \
+        -Dlibpth=/skiff/local/arm-linux/lib \
+        -D...
+
+or if you are happy with the defaults
+
+    sh ./Configure -des -Dusecrosscompile \
+        -Dtargethost=so.me.ho.st \
+        -Dcc=arm-linux-gcc \
+        -D...
+
 =head1 make test
 
 This will run the regression tests on the perl you just made.  If
@@ -1732,6 +1925,15 @@ things like:  exec, `backquoted command`, system, open("|...") or
 open("...|").  All these mean that Perl is trying to run some
 external program.
 
+=item Timing problems
+
+Several tests in the test suite check timing functions, such as
+sleep(), and see if they return in a reasonable amount of time.
+If your system is quite busy and doesn't return quickly enough,
+these tests might fail.  If possible, try running the tests again with
+the system under a lighter load.  These tests include F<t/op/alarm.t>,
+F<ext/Time/HiRes/HiRes.t>, and F<lib/Benchmark.t>.
+
 =item Out of memory
 
 On some systems, particularly those with smaller amounts of RAM, some
@@ -1831,12 +2033,17 @@ anything, you can run
 
 make install will install the following:
 
+    binaries
+
        perl,
            perl5.nnn   where nnn is the current release number.  This
                        will be a link to perl.
        suidperl,
            sperl5.nnn  If you requested setuid emulation.
        a2p             awk-to-perl translator
+
+    scripts
+
        cppstdin        This is used by perl -P, if your cc -E can't
                        read from stdin.
        c2ph, pstruct   Scripts for handling C structures in header files.
@@ -1849,13 +2056,21 @@ make install will install the following:
        pl2pm           Convert Perl 4 .pl files to Perl 5 .pm modules
        pod2html,       Converters from perl's pod documentation format
        pod2latex,      to other useful formats.
-       pod2man, and
-       pod2text
+       pod2man,
+       pod2text,
+       pod2checker,
+       pod2select,
+       pod2usage
        splain          Describe Perl warnings and errors
        dprofpp         Perl code profile post-processor
 
-       library files   in $privlib and $archlib specified to
+    library files
+
+                       in $privlib and $archlib specified to
                        Configure, usually under /usr/local/lib/perl5/.
+
+    documentation
+
        man pages       in $man1dir, usually /usr/local/man/man1.
        module man
        pages           in $man3dir, usually /usr/local/man/man3.
@@ -1864,11 +2079,28 @@ make install will install the following:
 Installperl will also create the directories listed above
 in L<"Installation Directories">.
 
-Perl's *.h header files and the libperl.a library are also installed
+Perl's *.h header files and the libperl library are also installed
 under $archlib so that any user may later build new modules, run the
 optional Perl compiler, or embed the perl interpreter into another
 program even if the Perl source is no longer available.
 
+Sometimes you only want to install the version-specific parts of the perl
+installation.  For example, you may wish to install a newer version of
+perl alongside an already installed production version of perl without
+disabling installation of new modules for the production version.
+To only install the version-specific parts of the perl installation, run
+
+       Configure -Dversiononly
+
+or answer 'y' to the appropriate Configure prompt.  Alternatively,
+you can just manually run
+
+       ./perl installperl -v
+
+and skip installman altogether.
+See also L<"Maintaining completely separate versions"> for another
+approach.
+
 =head1 Coexistence with earlier versions of perl5
 
 In general, you can usually safely upgrade from one version of Perl (e.g.
@@ -2050,6 +2282,132 @@ available in TeX format.  Type
 
        (cd pod && make tex && <process the latex files>)
 
+=head1 Minimizing the Perl installation
+
+The following section is meant for people worrying about squeezing the
+Perl installation into minimal systems (for example when installing
+operating systems, or in really small filesystems).
+
+In the following we offer two different slimmed down installation
+recipes.  They are informative, not normative: the choice of files
+depends on what you need.
+
+Firstly, the bare minimum to run this script
+
+  use strict;
+  use warnings;
+  foreach my $f (</*>) {
+     print("$f\n");
+  }
+
+in Solaris is as follows (under $Config{prefix}):
+
+  ./bin/perl
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/autosplit.ix
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_expandspec.al
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_find_symbol_anywhere.al
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_findfile.al
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/Glob.so
+  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/autosplit.ix
+  ./lib/perl5/5.6.1/sun4-solaris-64int/Config.pm
+  ./lib/perl5/5.6.1/sun4-solaris-64int/XSLoader.pm
+  ./lib/perl5/5.6.1/sun4-solaris-64int/DynaLoader.pm
+  ./lib/perl5/5.6.1/sun4-solaris-64int/CORE/libperl.so
+  ./lib/perl5/5.6.1/strict.pm
+  ./lib/perl5/5.6.1/warnings.pm
+  ./lib/perl5/5.6.1/Carp.pm
+  ./lib/perl5/5.6.1/Exporter.pm
+  ./lib/perl5/5.6.1/File/Glob.pm
+  ./lib/perl5/5.6.1/AutoLoader.pm
+  ./lib/perl5/5.6.1/vars.pm
+  ./lib/perl5/5.6.1/warnings/register.pm
+  ./lib/perl5/5.6.1/Carp/Heavy.pm
+  ./lib/perl5/5.6.1/Exporter/Heavy.pm
+
+Secondly, Debian perl-base package contains the following files,
+size about 1.2MB in its i386 version:
+
+  /usr/share/doc/perl/Documentation
+  /usr/share/doc/perl/README.Debian
+  /usr/share/doc/perl/copyright
+  /usr/share/doc/perl/AUTHORS.gz
+  /usr/share/doc/perl/changelog.Debian.gz
+  /usr/share/man/man1/perl.1.gz
+  /usr/share/perl/5.6.1/AutoLoader.pm
+  /usr/share/perl/5.6.1/Carp.pm
+  /usr/share/perl/5.6.1/Carp/Heavy.pm
+  /usr/share/perl/5.6.1/Cwd.pm
+  /usr/share/perl/5.6.1/Exporter.pm
+  /usr/share/perl/5.6.1/Exporter/Heavy.pm
+  /usr/share/perl/5.6.1/File/Spec.pm
+  /usr/share/perl/5.6.1/File/Spec/Unix.pm
+  /usr/share/perl/5.6.1/FileHandle.pm
+  /usr/share/perl/5.6.1/Getopt/Long.pm
+  /usr/share/perl/5.6.1/IO/Socket/INET.pm
+  /usr/share/perl/5.6.1/IO/Socket/UNIX.pm
+  /usr/share/perl/5.6.1/IPC/Open2.pm
+  /usr/share/perl/5.6.1/IPC/Open3.pm
+  /usr/share/perl/5.6.1/SelectSaver.pm
+  /usr/share/perl/5.6.1/Symbol.pm
+  /usr/share/perl/5.6.1/Text/Tabs.pm
+  /usr/share/perl/5.6.1/Text/Wrap.pm
+  /usr/share/perl/5.6.1/attributes.pm
+  /usr/share/perl/5.6.1/auto/Getopt/Long/GetOptions.al
+  /usr/share/perl/5.6.1/auto/Getopt/Long/FindOption.al
+  /usr/share/perl/5.6.1/auto/Getopt/Long/Configure.al
+  /usr/share/perl/5.6.1/auto/Getopt/Long/config.al
+  /usr/share/perl/5.6.1/auto/Getopt/Long/Croak.al
+  /usr/share/perl/5.6.1/auto/Getopt/Long/autosplit.ix
+  /usr/share/perl/5.6.1/base.pm
+  /usr/share/perl/5.6.1/constant.pm
+  /usr/share/perl/5.6.1/fields.pm
+  /usr/share/perl/5.6.1/integer.pm
+  /usr/share/perl/5.6.1/lib.pm
+  /usr/share/perl/5.6.1/locale.pm
+  /usr/share/perl/5.6.1/overload.pm
+  /usr/share/perl/5.6.1/strict.pm
+  /usr/share/perl/5.6.1/vars.pm
+  /usr/share/perl/5.6.1/warnings.pm
+  /usr/share/perl/5.6.1/warnings/register.pm
+  /usr/bin/perl
+  /usr/lib/perl/5.6.1/Config.pm
+  /usr/lib/perl/5.6.1/Data/Dumper.pm
+  /usr/lib/perl/5.6.1/DynaLoader.pm
+  /usr/lib/perl/5.6.1/Errno.pm
+  /usr/lib/perl/5.6.1/Fcntl.pm
+  /usr/lib/perl/5.6.1/File/Glob.pm
+  /usr/lib/perl/5.6.1/IO.pm
+  /usr/lib/perl/5.6.1/IO/File.pm
+  /usr/lib/perl/5.6.1/IO/Handle.pm
+  /usr/lib/perl/5.6.1/IO/Pipe.pm
+  /usr/lib/perl/5.6.1/IO/Seekable.pm
+  /usr/lib/perl/5.6.1/IO/Select.pm
+  /usr/lib/perl/5.6.1/IO/Socket.pm
+  /usr/lib/perl/5.6.1/POSIX.pm
+  /usr/lib/perl/5.6.1/Socket.pm
+  /usr/lib/perl/5.6.1/XSLoader.pm
+  /usr/lib/perl/5.6.1/auto/Data/Dumper/Dumper.so
+  /usr/lib/perl/5.6.1/auto/Data/Dumper/Dumper.bs
+  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_findfile.al
+  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_expandspec.al
+  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_find_symbol_anywhere.al
+  /usr/lib/perl/5.6.1/auto/DynaLoader/autosplit.ix
+  /usr/lib/perl/5.6.1/auto/DynaLoader/DynaLoader.a
+  /usr/lib/perl/5.6.1/auto/DynaLoader/extralibs.ld
+  /usr/lib/perl/5.6.1/auto/Fcntl/Fcntl.so
+  /usr/lib/perl/5.6.1/auto/Fcntl/Fcntl.bs
+  /usr/lib/perl/5.6.1/auto/File/Glob/Glob.bs
+  /usr/lib/perl/5.6.1/auto/File/Glob/Glob.so
+  /usr/lib/perl/5.6.1/auto/File/Glob/autosplit.ix
+  /usr/lib/perl/5.6.1/auto/IO/IO.so
+  /usr/lib/perl/5.6.1/auto/IO/IO.bs
+  /usr/lib/perl/5.6.1/auto/POSIX/POSIX.bs
+  /usr/lib/perl/5.6.1/auto/POSIX/POSIX.so
+  /usr/lib/perl/5.6.1/auto/POSIX/autosplit.ix
+  /usr/lib/perl/5.6.1/auto/POSIX/load_imports.al
+  /usr/lib/perl/5.6.1/auto/Socket/Socket.so
+  /usr/lib/perl/5.6.1/auto/Socket/Socket.bs
+
 =head1 Reporting Problems
 
 If you have difficulty building perl, and none of the advice in this file
@@ -2114,7 +2472,3 @@ the same terms as perl itself, with the following additional request:
 If you are distributing a modified version of perl (perhaps as part of
 a larger package) please B<do> modify these installation instructions
 and the contact information to match your distribution.
-
-=head1 LAST MODIFIED
-
-$Id: INSTALL,v 1.58 1999/07/23 14:43:00 doughera Exp $