There are several advantages to this:
-=over
+=over
=item *
new kinds of keyword-headed expression and compound statement. The
syntax following the keyword is defined entirely by the extension. This
allow a completely non-Perl sublanguage to be parsed inline, with the
-correct ops cleanly generated.
+correct ops cleanly generated.
See L<perlapi/PL_keyword_plugin> for the mechanism. The Perl core
source distribution also includes a new module
Internally, Perl now treates compiled regular expressions (such as
those created with C<qr//>) as first class entities. Perl modules which
serialize, deserialize or otherwise have deep interaction with Perl's
-internal data structures need to be updated for this change. Affected
-modules include L<FreezeThaw>,L<Data::Dump::Streamer> and L<Regexp::Copy>.
-
+internal data structures need to be updated for this change. Most
+affected CPAN modules have already been updated as of this writing.
=head2 Switch statement changes
To better match all other flow control statements, C<foreach> may no
longer be used as an attribute.
+=item *
+
+Perl's command-line switch "-P", which was deprecated in version 5.10.0, has
+now been removed.
+
=back
a later release where the system administrator needs to know to install
multiple packages to get that same functionality.
+You can silence these deprecation warnings by installing the modules
+in question from CPAN. To install the latest version of all of them,
+just install C<Task::Deprecations::5_12>.
+
=over
=item L<Class::ISA>
F<getopt.pl>, F<getcwd.pl>, F<flush.pl>, F<fastcwd.pl>, F<exceptions.pl>,
F<ctime.pl>, F<complete.pl>, F<cacheout.pl>, F<bigrat.pl>, F<bigint.pl>,
F<bigfloat.pl>, F<assert.pl>, F<abbrev.pl>, F<dotsh.pl>, and
-F<timelocal.pl> are all now deprecated. Using them will incur a warning.
+F<timelocal.pl> are all now deprecated. Earlier, Perl's developers
+intended to remove these libraries from Perl's core for the 5.14.0 release.
+
+During final testing before the release of 5.12.0, several developers
+discovered current production code using these ancient libraries, some
+inside the Perl core itself. Accordingly, the pumpking granted them
+a stay of execution. They will begin to warn about their deprecation
+in the 5.14.0 release and will be removed in the 5.16.0 release.
=back
=item *
The internal structure of the dual-life modules traditionally found in
-the F<lib/> and F<ext/> directories y in the perl source has changed
+the F<lib/> and F<ext/> directories in the perl source has changed
significantly. Where possible, dual-lifed modules have been extracted
from F<lib/> and F<ext/>.
This uses a new warnings category: "imprecision".
-=item *
+=item *
C<lc>, C<uc>, C<lcfirst>, and C<ucfirst> warn when passed undef.
=item *
F<h2xs> no longer incorrectly treats enum values like macros.
-It also now handles C++ style comments (C<//>) properly in enums.
+It also now handles C++ style comments (C<//>) properly in enums.
=item *
=item *
+Some CPANPLUS tests may fail if there is a functioning file
+F<../../cpanp-run-perl> outside your build directory. The failure
+shouldn't imply there's a problem with the actual functional
+software. The bug is already fixed in [RT #74188] and is scheduled for
+inclusion in perl-v5.12.1.
+
+=item *
+
C<List::Util::first> misbehaves in the presence of a lexical C<$_>
(typically introduced by C<my $_> or implicitly by C<given>). The variable
which gets set for each iteration is the package variable C<$_>, not the