to the language internals. If you have dynamically loaded extensions
that you built under perl 5.003 or 5.004, you can continue to use them
with 5.004, but you will need to rebuild and reinstall those extensions
-to use them 5.005. See L<INSTALL> for detailed instructions on how to
+to use them 5.005. See F<INSTALL> for detailed instructions on how to
upgrade.
=head2 Default installation structure has changed
The new Configure defaults are designed to allow a smooth upgrade from
-5.004 to 5.005, but you should read L<INSTALL> for a detailed
+5.004 to 5.005, but you should read F<INSTALL> for a detailed
discussion of the changes in order to adapt them to your system.
=head2 Perl Source Compatibility
The license included in much of the Perl documentation has changed.
Most of the Perl documentation was previously under the implicit GNU
General Public License or the Artistic License (at the user's choice).
-Now much of the documentation unambigously states the terms under which
+Now much of the documentation unambiguously states the terms under which
it may be distributed. Those terms are in general much less restrictive
than the GNU GPL. See L<perl> and the individual perl man pages listed
therein.
implementation may change without notice. There are known limitations
and some bugs. These are expected to be fixed in future versions.
-See L<README.threads>.
+See F<README.threads>.
=head2 Compiler
Perl used to complain if it encountered literal carriage returns in
scripts. Now they are mostly treated like whitespace within program text.
Inside string literals and here documents, literal carriage returns are
-ignored if they occur paired with newlines, or get interpreted as newlines
+ignored if they occur paired with linefeeds, or get interpreted as whitespace
if they stand alone. This behavior means that literal carriage returns
in files should be avoided. You can get the older, more compatible (but
less generous) behavior by defining the preprocessor symbol
In previous versions, this would print "hello", but it now prints "g'bye".
-=head2 E<lt>E<gt> now reads in records
+=head2 <> now reads in records
-If C<$/> is a referenence to an integer, or a scalar that holds an integer,
-E<lt>E<gt> will read in records instead of lines. For more info, see
+If C<$/> is a reference to an integer, or a scalar that holds an integer,
+<> will read in records instead of lines. For more info, see
L<perlvar/$/>.
=head1 Supported Platforms
=head2 New Platforms
-BeOS is now supported. See L<README.beos>.
+BeOS is now supported. See F<README.beos>.
-DOS is now supported under the DJGPP tools. See L<README.dos>.
+DOS is now supported under the DJGPP tools. See F<README.dos> (installed
+as L<perldos> on some systems).
-MPE/iX is now supported. See L<README.mpeix>.
+MiNT is now supported. See F<README.mint>.
-MVS (aka OS390, aka Open Edition) is now supported. See L<README.os390>.
+MPE/iX is now supported. See F<README.mpeix>.
-Stratus VOS is now supported. See L<README.vos>.
+MVS (aka OS390, aka Open Edition) is now supported. See F<README.os390>
+(installed as L<perlos390> on some systems).
+
+Stratus VOS is now supported. See F<README.vos>.
=head2 Changes in existing support
encapsulation of Perl. GCC and EGCS are now supported on Win32.
See F<README.win32>, aka L<perlwin32>.
-VMS configuration system has been rewritten. See L<README.vms>.
+VMS configuration system has been rewritten. See F<README.vms> (installed
+as L<README_vms> on some systems).
The hints files for most Unix platforms have seen incremental improvements.
A module to pretty print Perl data. See L<Data::Dumper>.
+=item Dumpvalue
+
+A module to dump perl values to the screen. See L<Dumpvalue>.
+
=item Errno
A module to look up errors more conveniently. See L<Errno>.
You can now run tests for I<x> seconds instead of guessing the right
number of tests to run.
+=item Carp
+
+Carp has a new function cluck(). cluck() warns, like carp(), but also adds
+a stack backtrace to the error message, like confess().
+
=item CGI
CGI has been updated to version 2.42.
Some more Perl traps are documented now. See L<perltrap>.
+L<perlopentut> gives a tutorial on using open().
+
+L<perlreftut> gives a tutorial on references.
+
+L<perlthrtut> gives a tutorial on threads.
+
=head1 New Diagnostics
=over
process $BADREF 1,2,3;
$BADREF->process(1,2,3);
+=item Can't check filesystem of script "%s" for nosuid
+
+(P) For some reason you can't check the filesystem of the script for nosuid.
+
=item Can't coerce array into hash
(F) You used an array where a hash was expected, but the array has no
=item Can't localize pseudo-hash element
-(F) You said something like C<local $ar-E<gt>{'key'}>, where $ar is
+(F) You said something like C<< local $ar->{'key'} >>, where $ar is
a reference to a pseudo-hash. That hasn't been implemented yet, but
you can get a similar effect by localizing the corresponding array
-element directly -- C<local $ar-E<gt>[$ar-E<gt>[0]{'key'}]>.
+element directly -- C<< local $ar->[$ar->[0]{'key'}] >>.
=item Can't use %%! because Errno.pm is not available
Usually when you want a regular expression this big, there is a better
way to do it with multiple statements. See L<perlre>.
-=item regexp too big
+=back
-(F) The current implementation of regular expressions uses shorts as
-address offsets within a string. Unfortunately this means that if
-the regular expression compiles to longer than 32767, it'll blow up.
-Usually when you want a regular expression this big, there is a better
-way to do it with multiple statements. See L<perlre>.
+=head1 Configuration Changes
-=back
+You can use "Configure -Uinstallusrbinperl" which causes installperl
+to skip installing perl also as /usr/bin/perl. This is useful if you
+prefer not to modify /usr/bin for some reason or another but harmful
+because many scripts assume to find Perl in /usr/bin/perl.
=head1 BUGS
=head1 HISTORY
-Written by Gurusamy Sarathy <F<gsar@umich.edu>>, with many contributions
+Written by Gurusamy Sarathy <F<gsar@activestate.com>>, with many contributions
from The Perl Porters.
Send omissions or corrections to <F<perlbug@perl.com>>.