Modules and Pragmata

Pragmata Changes

These were being exported with a wrapper that treated them as method calls, which caused them to fail. They are just functions, are documented as such, and should never be subclassed, so this patch just exports them directly as functions without the wrapper.

Updated Modules

We upgraded CGI.pm to version 3.49 to incorporate fixes for regressions introduced in the release we shipped with Perl 5.12.0.

We upgraded Pod::Simple to version 3.14 to get an improvement to \C\<\< \>\> parsing.

We made a small fix to the CPANPLUS test suite to fix an occasional spurious test failure.

We upgraded Safe to version 2.27 to wrap coderefs returned by reval() and rdo().

We corrected perlgpl.pod to contain the correct version of the GNU General Public License.

Testing

Testing Improvements

t/op/sselect.t is now less prone to clock jitter during timing checks on Windows.

sleep() time on Win32 may be rounded down to multiple of the clock tick interval.

lib/blib.t and lib/locale.t: Fixes for test failures on Darwin/PPC

perl5db.t: Fix for test failures when Term::ReadLine::Gnu is installed.

Installation and Configuration Improvements

Configuration improvements

We updated INSTALL with notes about how to deal with broken dbm.h on OpenSUSE (and possibly other platforms)

Bug Fixes

A bug in how we process filetest operations could cause a segfault. Filetests don't always expect an op on the stack, so we now use TOPs only if we're sure that we're not stat'ing the _ filehandle. This is indicated by OPf_KIDS (as checked in ck_ftst).

When deparsing a nextstate op that has both a change of package (relative to the previous nextstate) and a label, the package declaration is now emitted first, because it is syntactically impermissible for a label to prefix a package declaration.

We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors in an obscure situation. It happened when stuffing was performed on the last line of a file and the line ended with a statement that lacked a terminating semicolon.

VMS

DCL symbol length was limited to 1K up until about seven years or so ago, but there was no particularly deep reason to prevent those older systems from configuring and building Perl.

We fixed the previously-broken -Uuseperlio build on VMS.

We were checking a variable that doesn't exist in the non-default case of disabling perlio. Now we only look at it when it exists.

We fixed the -Uuseperlio command-line option in configure.com.

Formerly it only worked if you went through all the questions interactively and explicitly answered no.

Known Problems

List::Util::first misbehaves in the presence of a lexical $_ (typically introduced by my $_ or implicitly by given). The variable which gets set for each iteration is the package variable $_, not the lexical $_.

A similar issue may occur in other modules that provide functions which take a block as their first argument, like

Module::Load::Conditional and version have an unfortunate interaction which can cause CPANPLUS to crash when it encounters an unparseable version string. Upgrading to CPANPLUS 0.9004 or Module::Load::Conditional 0.38 from CPAN will resolve this issue.

Acknowledgements

Perl 5.12.1 represents approximately four weeks of development since Perl 5.12.0 and contains approximately 4,000 lines of changes across 142 files from 28 authors.

Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.12.1:

Reporting Bugs

If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://rt.perl.org/perlbug/ . There may also be information at http://www.perl.org/ , the Perl Home Page.

If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V, will be sent off to perlbug@perl.org to be analysed by the Perl porting team.

If the bug you are reporting has security implications, which make it inappropriate to send to a publicly archived mailing list, then please send it to perl5-security-report@perl.org. This points to a closed subscription unarchived mailing list, which includes all the core committers, who will be able to help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. Please only use this address for security issues in the Perl core, not for modules independently distributed on CPAN.

SEE ALSO

The Changes file for an explanation of how to view exhaustive details on what changed.

The INSTALL file for how to build Perl.

The README file for general stuff.

The Artistic and Copying files for copyright information.

Module Install Instructions

To install perl5121delta, simply copy and paste either of the commands in to your terminal