+The identifier C<_> is now forced to be a bareword after a filetest
+operator. This solves a number of misparsing issues when a global C<_>
+subroutine is defined.
+
+=head2 C<:unique>
+
+The C<:unique> attribute has been made a no-op, since its current
+implementation was fundamentally flawed and not threadsafe.
+
+=head2 Effect of pragmas in eval
+
+The compile-time value of the C<%^H> hint variable can now propagate into
+eval("")uated code. This makes it more useful to implement lexical
+pragmas.
+
+As a side-effect of this, the overloaded-ness of constants now propagates
+into eval("").
+
+=head2 chdir FOO
+
+A bareword argument to chdir() is now recognized as a file handle.
+Earlier releases interpreted the bareword as a directory name.
+(Gisle Aas)
+
+=head2 Handling of .pmc files
+
+An old feature of perl was that before C<require> or C<use> look for a
+file with a F<.pm> extension, they will first look for a similar filename
+with a F<.pmc> extension. If this file is found, it will be loaded in
+place of any potentially existing file ending in a F<.pm> extension.
+
+Previously, F<.pmc> files were loaded only if more recent than the
+matching F<.pm> file. Starting with 5.9.4, they'll be always loaded if
+they exist.
+
+=head2 @- and @+ in patterns
+
+The special arrays C<@-> and C<@+> are no longer interpolated in regular
+expressions. (Sadahiro Tomoyuki)
+
+=head2 $AUTOLOAD can now be tainted
+
+If you call a subroutine by a tainted name, and if it defers to an
+AUTOLOAD function, then $AUTOLOAD will be (correctly) tainted.
+(Rick Delaney)
+
+=head2 Tainting and printf
+
+When perl is run under taint mode, C<printf()> and C<sprintf()> will now
+reject any tainted format argument. (Rafael Garcia-Suarez)
+
+=head2 undef and signal handlers
+
+Undefining or deleting a signal handler via C<undef $SIG{FOO}> is now
+equivalent to setting it to C<'DEFAULT'>. (Rafael Garcia-Suarez)
+
+=head2 strictures and dereferencing in defined()
+
+C<use strict 'refs'> was ignoring taking a hard reference in an argument
+to defined(), as in :
+
+ use strict 'refs';
+ my $x = 'foo';
+ if (defined $$x) {...}
+
+This now correctly produces the run-time error C<Can't use string as a
+SCALAR ref while "strict refs" in use>.
+
+C<defined @$foo> and C<defined %$bar> are now also subject to C<strict
+'refs'> (that is, C<$foo> and C<$bar> shall be proper references there.)
+(C<defined(@foo)> and C<defined(%bar)> are discouraged constructs anyway.)
+(Nicholas Clark)
+
+=head2 C<(?p{})> has been removed
+
+The regular expression construct C<(?p{})>, which was deprecated in perl
+5.8, has been removed. Use C<(??{})> instead. (Rafael Garcia-Suarez)
+
+=head2 Pseudo-hashes have been removed
+
+Support for pseudo-hashes has been removed from Perl 5.9. (The C<fields>
+pragma remains here, but uses an alternate implementation.)
+
+=head2 Removal of the bytecode compiler and of perlcc
+
+C<perlcc>, the byteloader and the supporting modules (B::C, B::CC,
+B::Bytecode, etc.) are no longer distributed with the perl sources. Those
+experimental tools have never worked reliably, and, due to the lack of
+volunteers to keep them in line with the perl interpreter developments, it
+was decided to remove them instead of shipping a broken version of those.
+The last version of those modules can be found with perl 5.9.4.
+
+However the B compiler framework stays supported in the perl core, as with
+the more useful modules it has permitted (among others, B::Deparse and
+B::Concise).
+
+=head2 Removal of the JPL
+
+The JPL (Java-Perl Lingo) has been removed from the perl sources tarball.
+
+=head2 Recursive inheritance detected earlier
+
+Perl will now immediately throw an exception if you modify any package's
+C<@ISA> in such a way that it would cause recursive inheritance.
+
+Previously, the exception would not occur until Perl attempted to make
+use of the recursive inheritance while resolving a method or doing a
+C<$foo-E<gt>isa($bar)> lookup.
+
+=head1 Modules and Pragmata
+
+=head2 Pragmata Changes
+
+=over 4
+
+=item C<feature>
+
+The new pragma C<feature> is used to enable new features that might break
+old code. See L</"The C<feature> pragma"> above.
+
+=item C<mro>
+
+This new pragma enables to change the algorithm used to resolve inherited
+methods. See L</"New Pragma, C<mro>"> above.
+
+=item Scoping of the C<sort> pragma
+
+The C<sort> pragma is now lexically scoped. Its effect used to be global.
+
+=item Scoping of C<bignum>, C<bigint>, C<bigrat>
+
+The three numeric pragmas C<bignum>, C<bigint> and C<bigrat> are now
+lexically scoped. (Tels)
+
+=item C<base>
+
+The C<base> pragma now warns if a class tries to inherit from itself.
+(Curtis "Ovid" Poe)
+
+=item C<strict> and C<warnings>
+
+C<strict> and C<warnings> will now complain loudly if they are loaded via
+incorrect casing (as in C<use Strict;>). (Johan Vromans)
+
+=item C<version>
+
+The C<version> module provides support for version objects.
+
+=item C<warnings>
+
+The C<warnings> pragma doesn't load C<Carp> anymore. That means that code
+that used C<Carp> routines without having loaded it at compile time might
+need to be adjusted; typically, the following (faulty) code won't work
+anymore, and will require parentheses to be added after the function name:
+
+ use warnings;
+ require Carp;
+ Carp::confess 'argh';
+
+=item C<less>
+
+C<less> now does something useful (or at least it tries to). In fact, it
+has been turned into a lexical pragma. So, in your modules, you can now
+test whether your users have requested to use less CPU, or less memory,
+less magic, or maybe even less fat. See L<less> for more. (Joshua ben
+Jore)
+
+=back
+
+=head2 New modules
+
+=over 4
+
+=item *
+
+C<encoding::warnings>, by Audrey Tang, is a module to emit warnings
+whenever an ASCII character string containing high-bit bytes is implicitly
+converted into UTF-8. It's a lexical pragma since Perl 5.9.4; on older
+perls, its effect is global.
+
+=item *
+
+C<Module::CoreList>, by Richard Clamp, is a small handy module that tells
+you what versions of core modules ship with any versions of Perl 5. It
+comes with a command-line frontend, C<corelist>.
+
+=item *
+
+C<Math::BigInt::FastCalc> is an XS-enabled, and thus faster, version of
+C<Math::BigInt::Calc>.
+
+=item *
+
+C<Compress::Zlib> is an interface to the zlib compression library. It
+comes with a bundled version of zlib, so having a working zlib is not a
+prerequisite to install it. It's used by C<Archive::Tar> (see below).
+
+=item *
+
+C<IO::Zlib> is an C<IO::>-style interface to C<Compress::Zlib>.
+
+=item *
+
+C<Archive::Tar> is a module to manipulate C<tar> archives.
+
+=item *
+
+C<Digest::SHA> is a module used to calculate many types of SHA digests,
+has been included for SHA support in the CPAN module.
+
+=item *
+
+C<ExtUtils::CBuilder> and C<ExtUtils::ParseXS> have been added.
+
+=item *
+
+C<Hash::Util::FieldHash>, by Anno Siegel, has been added. This module
+provides support for I<field hashes>: hashes that maintain an association
+of a reference with a value, in a thread-safe garbage-collected way.
+Such hashes are useful to implement inside-out objects.
+
+=item *
+
+C<Module::Build>, by Ken Williams, has been added. It's an alternative to
+C<ExtUtils::MakeMaker> to build and install perl modules.
+
+=item *
+
+C<Module::Load>, by Jos Boumans, has been added. It provides a single
+interface to load Perl modules and F<.pl> files.
+
+=item *
+
+C<Module::Loaded>, by Jos Boumans, has been added. It's used to mark
+modules as loaded or unloaded.
+
+=item *
+
+C<Package::Constants>, by Jos Boumans, has been added. It's a simple
+helper to list all constants declared in a given package.
+
+=item *
+
+C<Win32API::File>, by Tye McQueen, has been added (for Windows builds).
+This module provides low-level access to Win32 system API calls for
+files/dirs.
+
+=item *
+
+C<Locale::Maketext::Simple>, needed by CPANPLUS, is a simple wrapper around
+C<Locale::Maketext::Lexicon>. Note that C<Locale::Maketext::Lexicon> isn't
+included in the perl core; the behaviour of C<Locale::Maketext::Simple>
+gracefully degrades when the later isn't present.
+
+=item *
+
+C<Params::Check> implements a generic input parsing/checking mechanism. It
+is used by CPANPLUS.
+
+=item *
+
+C<Term::UI> simplifies the task to ask questions at a terminal prompt.
+
+=item *
+
+C<Object::Accessor> provides an interface to create per-object accessors.
+
+=item *
+
+C<Module::Pluggable> is a simple framework to create modules that accept
+pluggable sub-modules.
+
+=item *
+
+C<Module::Load::Conditional> provides simple ways to query and possibly
+load installed modules.
+
+=item *
+
+C<Time::Piece> provides an object oriented interface to time functions,
+overriding the built-ins localtime() and gmtime().
+
+=item *
+
+C<IPC::Cmd> helps to find and run external commands, possibly
+interactively.
+
+=item *
+
+C<File::Fetch> provide a simple generic file fetching mechanism.
+
+=item *
+
+C<Log::Message> and C<Log::Message::Simple> are used by the log facility
+of C<CPANPLUS>.
+
+=item *
+
+C<Archive::Extract> is a generic archive extraction mechanism
+for F<.tar> (plain, gziped or bzipped) or F<.zip> files.
+
+=item *
+
+C<CPANPLUS> provides an API and a command-line tool to access the CPAN
+mirrors.
+
+=back
+
+=head2 Selected Changes to Core Modules
+
+=over 4
+
+=item C<Attribute::Handlers>
+
+C<Attribute::Handlers> can now report the caller's file and line number.
+(David Feldman)
+
+=item C<B::Lint>
+
+C<B::Lint> is now based on C<Module::Pluggable>, and so can be extended
+with plugins. (Joshua ben Jore)
+
+=item C<B>
+
+It's now possible to access the lexical pragma hints (C<%^H>) by using the
+method B::COP::hints_hash(). It returns a C<B::RHE> object, which in turn
+can be used to get a hash reference via the method B::RHE::HASH(). (Joshua
+ben Jore)
+
+=item C<Thread>
+
+As the old 5005thread threading model has been removed, in favor of the
+ithreads scheme, the C<Thread> module is now a compatibility wrapper, to
+be used in old code only. It has been removed from the default list of
+dynamic extensions.
+
+=back
+
+=head1 Utility Changes
+
+=over 4
+
+=item perl -d