perl51311delta man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

PERL51311DELTA(1)      Perl Programmers Reference Guide	     PERL51311DELTA(1)

NAME
       perl51311delta - what is new for perl v5.13.11

DESCRIPTION
       This document describes differences between the 5.13.10 release and the
       5.13.11 release.

       If you are upgrading from an earlier release such as 5.13.9, first read
       perl5139delta, which describes differences between 5.13.9 and 5.13.10.

Security
   User-defined regular expression properties
       Perl no longer allows a tainted regular expression to invoke a user-
       defined property via "\p{...}" syntax. It simply dies instead [perl
       #82616].

Incompatible Changes
   local($_) will strip all magic from $_
       local() on scalar variables will give them a new value, but keep all
       their magic intact.  This has proven to be problematic for the default
       scalar variable $_, where perlsub recommends that any subroutine that
       assigns to $_ should localize it first.	This would throw an exception
       if $_ is aliased to a read-only variable, and could have various
       unintentional side-effects in general.

       Therefore, as an exception to the general rule, local($_) will not only
       assign a new value to $_, but also remove all existing magic from it as
       well.

   Passing references to warn()
       An earlier Perl 5.13.x release changed "warn($ref)" to leave the
       reference unchanged, allowing $SIG{__WARN__} handlers to access the
       original reference. But this stopped warnings that were references from
       having the file and line number appended even when there was no
       $SIG{__WARN__} handler in place.

       Now "warn" checks for the presence of such a handler and, if there is
       none, proceeds to stringify the reference and append the file and line
       number. This allows simple uses of "warn" for debugging to continue to
       work as they did before.

   fork() emulation will not wait for signalled children
       On Windows parent processes would not terminate until all forked
       childred had terminated first.  However, "kill('KILL', ...)" is
       inherently unstable on pseudo-processes, and "kill('TERM', ...)"	 might
       not get delivered if the child if blocked in a system call.

       To avoid the deadlock and still provide a safe mechanism to terminate
       the hosting process, Perl will now no longer wait for children that
       have been sent a SIGTERM signal.	 It is up to the parent process to
       waitpid() for these children if child clean-up processing must be
       allowed to finish. However, it is also the responsibility of the parent
       then to avoid the deadlock by making sure the child process can't be
       blocked on I/O either.

       See perlfork for more information about the fork() emulation on
       Windows.

   Perl source code is read in text mode on Windows
       Perl scripts used to be read in binary mode on Windows for the benefit
       of the ByteLoader module (which is no longer part of core Perl).	 This
       had the side effect of breaking various operations on the DATA
       filehandle, including seek()/tell(), and even simply reading from DATA
       after file handles have been flushed by a call to system(), backticks,
       fork() etc.

       The default build options for Windows have been changed to read Perl
       source code on Windows in text mode now.	 Hopefully ByteLoader will be
       updated on CPAN to automatically handle this situation.

Performance Enhancements
       ·   An earlier optimisation to speed up "my @array = ..." and "my %hash
	   = ..." assignments caused a bug and was disabled in Perl 5.12.0.

	   Now we have found another way to speed up these assignments [perl
	   #82110].

Modules and Pragmata
   Updated Modules and Pragmata
       ·   "attributes" has been upgraded from version 0.13 to 0.14.

       ·   "base" has been upgraded from version 2.15 to 2.16.

       ·   "CPAN" has been upgraded from version 1.94_65 to 1.9600.

       ·   "CPANPLUS" has been upgraded from version 0.9101 to 0.9103

       ·   "CPANPLUS::Dist::Build" has been upgraded from version 0.52 to 0.54

       ·   "Cwd" has been downgraded from version 3.37 to 3.36.

	   An optimisation that recent core changes have rendered unnecessary
	   has been reverted.

       ·   "Devel::DProf" has been upgraded from version 20110225.01 to
	   20110228.00.

       ·   "Digest::SHA" has been upgraded from version 5.50 to 5.61

	   New SHA-512/224 and SHA-512/256 transforms ref. NIST Draft FIPS
	   180-4 (February 2011)

       ·   "ExtUtils::Command" has been upgraded from version 1.16 to 1.17.

       ·   "File::Copy" has been downgraded from version 2.22 to 2.21.

	   An optimisation that recent core changes have rendered unnecessary
	   has been reverted.

       ·   "File::Glob" has been upgraded from version 1.11 to 1.12.

       ·   "GDBM_File" has been upgraded from version 1.13 to 1.14.

       ·   "Hash::Util" has been upgraded from version 0.10 to 0.11.

       ·   "Hash::Util::FieldHash" has been upgraded from version 1.08 to
	   1.09.

       ·   "HTTP::Tiny" has been upgraded from version 0.010 to 0.011.

       ·   "I18N::Langinfo" has been upgraded from version 0.07 to 0.08.

       ·   "IO" has been upgraded from version 1.25_03 to 1.25_04.

       ·   "JSON::PP" has been upgraded from version 2.27103 to 2.27105

       ·   "Locale::Codes" has been upgraded from version 3.15 to 3.16

       ·   "Math::BigInt" has been upgraded from version 1.992 to 1.994

       ·   "Math::BigInt::FastCalc" has been upgraded from version 0.24_02 to
	   0.28

       ·   "Module::Build" has been upgraded from version 0.37_05 to 0.3800

       ·   "Module::CoreList" has been upgraded from version 2.45 to 2.46.

       ·   "mro" has been upgraded from version 1.06 to 1.07.

       ·   "NDBM_File" has been upgraded from version 1.11 to 1.12.

       ·   "parent" has been upgraded from version 0.224 to 0.225

       ·   "Pod::Simple" has been upgraded from version 3.15 to 3.16

       ·   "Storable" has been upgraded from version 2.26 to 2.27.

       ·   "Sys::Hostname" has been upgraded from version 1.15 to 1.16.

       ·   "Test::Harness" has been upgraded from version 3.22 to 3.23

       ·   "Test::Simple" has been upgraded from version 0.97_01 to 0.98

       ·   "Tie::Hash::NamedCapture" has been upgraded from version 0.07 to
	   0.08.

	   Some of the Perl code has been converted to XS for efficency's
	   sake.

       ·   "Tie::RefHash" has been upgraded from version 1.38 to 1.39.

       ·   "Unicode::Collate" has been upgraded from version 0.72 to 0.73

	   DUCET has been updated for Unicode 6.0.0 as Collate/allkeys.txt and
	   the default UCA_Version is 22.

       ·   "Unicode::UCD" has been upgraded from version 0.31 to 0.32.	This
	   includes a number of bug fixes:

	   charinfo()
	       ·   It is now updated to Unicode Version 6 with Corrigendum #8,
		   except, as with Perl 5.14, the code point at U+1F514 has no
		   name.

	       ·   The Hangul syllable code points have the correct names, and
		   their decompositions are always output without requiring
		   Lingua::KO::Hangul::Util to be installed.

	       ·   The CJK (Chinese-Japanese-Korean) code points U+2A700 -
		   U+2B734 and U+2B740 - 2B81D are now properly handled.

	       ·   The numeric values are now output for those CJK code points
		   that have them.

	       ·   The names that are output for code points with multiple
		   aliases are now the corrected ones.

	   charscript()
	       This now correctly returns "Unknown" instead of "undef" for the
	       script of a code point that hasn't been assigned another one.

	   charblock()
	       This now correctly returns "No_Block" instead of "undef" for
	       the block of a code point that hasn't been assigned to another
	       one.

       ·   "XS::Typemap" has been upgraded from version 0.04 to 0.05.

Documentation
   Changes to Existing Documentation
       perlfunc

       ·   Clarified the order in which to check $@ and $! after "do FILE".
	   (RT #80626)

Diagnostics
       The following additions or changes have been made to diagnostic output,
       including warnings and fatal error messages.  For the complete list of
       diagnostic messages, see perldiag.

   New Diagnostics
       ·   Regexp modifier "/%c" may not appear twice

	   (F syntax) The regular expression pattern had one of the mutually
	   exclusive modifiers repeated.  Remove all but one of the
	   occurrences.

       ·   Regexp modifiers "/%c" and "/%c" are mutually exclusive

	   (F syntax) The regular expression pattern had more than one of the
	   mutually exclusive modifiers.  Retain only the modifier that is
	   supposed to be there.

       ·   Insecure user-defined property %s

	   (F) Perl detected tainted data when trying to compile a regular
	   expression that contains a call to a user-defined character
	   property function, i.e. "\p{IsFoo}" or "\p{InFoo}".	See "User-
	   Defined Character Properties" in perlunicode and perlsec.

Testing
       Many of the tests have been refactored to use testing libraries more
       consistently. In some cases test files were created or deleted:

       ·   The tests for "split /\s/" and Unicode have been moved from
	   t/op/split.t to the new t/op/split_unicode.t.

       ·   t/re/re.t has been moved to ext/re/t/re_funcs_u.t.

       ·   The tests for [perl #72922] have been moved from t/re/qr.t to the
	   new t/re/qr-72922.t.

       ·   t/re/reg_unsafe.t has been deleted and its only test moved to
	   t/re/pat_advanced.t.

Selected Bug Fixes
       ·   A fix for a bug in "length(undef)" in 5.13.4 introduced a
	   regression that meant "print length undef" did not warn when
	   warnings were enabled. It now correctly warns [perl #85508].

       ·   The "(?|...)" regular expression construct no longer crashes if the
	   final branch has more sets of capturing parentheses than any other
	   branch. This was fixed in Perl 5.10.1 for the case of a single
	   branch, but that fix did not take multiple branches into account
	   [perl #84746].

       ·   Accessing an element of a package array with a hard-coded number
	   (as opposed to an arbitrary expression) would crash if the array
	   did not exist.  Usually the array would be autovivified during
	   compilation, but typeglob manipulation could remove it, as in these
	   two cases which used to crash:

	     *d = *a;  print $d[0];
	     undef *d; print $d[0];

       ·   "#line" directives in string evals were not properly updating the
	   arrays of lines of code ("@{"_<..."}") that the debugger (or any
	   debugging or profiling module) uses. In threaded builds, they were
	   not being updated at all. In non-threaded builds, the line number
	   was ignored, so any change to the existing line number would cause
	   the lines to be misnumbered [perl #79442].

       ·   $AUTOLOAD used to remain tainted forever if it ever became tainted.
	   Now it is correctly untainted if an autoloaded method is called and
	   the method name was not tainted.

       ·   A bug has been fixed in the implementation of "{...}" quantifiers
	   in regular expressions that prevented the code block in "/((\w+)(?{
	   print $2 })){2}/" from seeing the $2 sometimes [perl #84294].

       ·   "sprintf" now dies when passed a tainted scalar for the format. It
	   did already die for arbitrary expressions, but not for simple
	   scalars [perl #82250].

       ·   DESTROY methods of objects implementing ties are no longer able to
	   crash by accessing the tied variable through a weak reference [perl
	   #86328].

       ·   On Windows, calling kill(9, $child) on a pseudo-process created by
	   the fork() emulation is inherently unstable.	 It can also be
	   responsible for overriding the parent process exit code with a
	   value of '9' if the parent terminates right after killing the
	   child.  This condition will now happen a lot less often than
	   before.

	   See also "fork() emulation will not wait for signalled children"
	   for a better way to terminate child processes that avoids deadlocks
	   altogether.

       ·   Ensure that the "exists &Errno::EFOO" idiom continues to work as
	   documented.

	   A change post-5.12 caused the documented idiom not to work if Errno
	   was loaded after the "exists" code had been compiled, as the
	   compiler implicitly creates typeglobs in the Errno symbol table
	   when it builds the optree for the "exists code".

Acknowledgements
       Perl 5.13.11 represents approximately one month of development since
       Perl 5.13.10 and contains approximately 80,000 lines of changes across
       549 files from 31 authors and committers:

       Alastair Douglas, Arvan, Boris Ratner, brian d foy, Chris 'BinGOs'
       Williams, Craig A. Berry, David Golden, David Leadbeater, David
       Mitchell, Father Chrysostomos, Florian Ragwitz, Jan Dubois, Karl
       Williamson, Kevin Ryde, Leon Brocard, Leon Timmermans, Michael Stevens,
       Michael Witten, Moritz Lenz, Nicholas Clark, Paul Johnson, Peter John
       Acklam, Reini Urban, Robin Barker, Steve Hay, Sullivan Beck, Tony Cook,
       Vadim Konovalov, Yves Orton, Zefram and var Arnfjoer` Bjarmason

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 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.

perl v5.14.4			  2012-12-19		     PERL51311DELTA(1)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net