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
more on how to specify C<configure_requires> when creating a distribution
for CPAN.
-=head2 C<each> is now more flexible
+=head2 C<each>, C<keys>, C<values> are now more flexible
-The C<each> function can now operate on arrays.
+The C<each>, C<keys>, C<values> function can now operate on arrays.
=head2 C<when> as a statement modifier
=head2 Deprecations warn by default
-Perl now defaults to issuing a warning if a deprecated language feature
-is used.
+Over the years, Perl's developers have deprecated a number of language
+features for a variety of reasons. Perl now defaults to issuing a
+warning if a deprecated language feature is used. Many of the deprecations
+Perl now warns you about have been deprecated for many years. You can
+find a list of what was deprecated in a given release of Perl in the
+C<perl5xxdelta.pod> file for that release.
To disable this feature in a given lexical scope, you should use C<no
warnings 'deprecated';> For information about which language features
are deprecated and explanations of various deprecation warnings, please
-see L<perldiag.pod>. See L</Deprecations> below for the list of features
+see L<perldiag>. See L</Deprecations> below for the list of features
and modules Perl's developers have deprecated as part of this release.
=head2 Version number formats
C<site_perl> and C<vendor_perl> will now be loaded in preference to
those installed in C<ARCHLIB> and C<PRIVLIB>.
+
+=head2 REGEXPs are now first class
+
+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. Most
+affected CPAN modules have already been updated as of this writing.
+
=head2 Switch statement changes
The C<given>/C<when> switch statement handles complex statements better
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/>.
=item *
-REGEXPs are now first class.
-
-=item *
-
C<Perl_vcroak()> now accepts a null first argument. In addition, a full
audit was made of the "not NULL" compiler annotations, and those for
several other internal functions were corrected.
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
list of all of Perl's historical contributors, please see the C<AUTHORS>
file in the Perl 5.12.0 distribution.
+Our "retired" pumpkings Nicholas Clark and Rafael Garcia-Suarez
+deserve special thanks for their brilliant and substantive ongoing
+contributions. Nicholas personally authored over 30% of the patches
+since 5.10.0. Rafael comes in second in patch authorship with 11%,
+but is first by a long shot in committing patches authored by others,
+pushing 44% of the commits since 5.10.0 in this category, often after
+providing considerable coaching to the patch authors. These statistics
+in no way comprise all of their contributions, but express in shorthand
+that we couldn't have done it without them.
+
Many of the changes included in this version originated in the CPAN
modules included in Perl's core. We're grateful to the entire CPAN
community for helping Perl to flourish.
The F<Artistic> and F<Copying> files for copyright information.
+L<http://dev.perl.org/perl5/errata.html> for a list of issues
+found after this release, as well as a list of CPAN modules known
+to be incompatible with this release.
+
=cut