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
Some new keywords have been introduced. These are generally expected to
have very little impact on compatibility. See L<New C<INIT> keyword>,
-L<New C<lock> keyword>, and L<New C<qr//> operator>.
+L<New C<lock> keyword>, and L<New C<qrE<sol>E<sol>> operator>.
Certain barewords are now reserved. Use of these will provoke a warning
if you have asked for them with the C<-w> switch.
=over 4
-=item Core sources now require ANSI C compiler
+=item *
+
+Core sources now require ANSI C compiler
An ANSI C compiler is now B<required> to build perl. See F<INSTALL>.
-=item All Perl global variables must now be referenced with an explicit prefix
+=item *
+
+All Perl global variables must now be referenced with an explicit prefix
All Perl global variables that are visible for use by extensions now
have a C<PL_> prefix. New extensions should C<not> refer to perl globals
See L<perlguts/"API LISTING">.
-=item Enabling threads has source compatibility issues
+=item *
+
+Enabling threads has source compatibility issues
Perl built with threading enabled requires extensions to use the new
C<dTHR> macro to initialize the handle to access per-thread data.
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
+than the GNU GPL. See L<perl> and the individual perl manpages listed
therein.
=head1 Core Changes
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
=item New operator for precompiled regular expressions
-See L<New C<qr//> operator>.
+See L<New C<qrE<sol>E<sol>> operator>.
=item Other improvements
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).
-MiNT is now supported. See L<README.mint>.
+MiNT is now supported. See F<README.mint>.
-MPE/iX is now supported. See L<README.mpeix>.
+MPE/iX is now supported. See F<README.mpeix>.
-MVS (aka OS390, aka Open Edition) is now supported. See L<README.os390>.
+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 L<README.vos>.
+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.
=head2 New Modules
-=over
+=over 4
=item B
=head2 Changes in existing modules
-=over
+=over 4
=item Benchmark
You can now run tests for I<x> seconds instead of guessing the right
number of tests to run.
+Keeps better time.
+
=item Carp
Carp has a new function cluck(). cluck() warns, like carp(), but also adds
Cwd::cwd is faster on most platforms.
-=item Benchmark
-
-Keeps better time.
-
=back
=head1 Utility Changes
=head1 New Diagnostics
-=over
+=over 4
=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
=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
One possible workaround is to force Perl to use magical string
increment by prepending "0" to your numbers.
-=item Recursive inheritance detected while looking for method '%s' in package '%s'
+=item Recursive inheritance detected while looking for method '%s' %s
(F) More than 100 levels of inheritance were encountered while invoking a
method. Probably indicates an unintended loop in your inheritance hierarchy.
=head1 Obsolete Diagnostics
-=over
+=over 4
=item Can't mktemp()
=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>>.