'\" te .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PERL5115DELTA 1" .TH PERL5115DELTA 1 "2012-11-03" "perl v5.12.5" "Perl Programmers Reference Guide" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" perl5115delta \- what is new for perl v5.11.5 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This document describes differences between the 5.11.4 release and the 5.11.5 release. .PP If you are upgrading from an earlier release such as 5.11.3, first read perl5114delta, which describes differences between 5.11.3 and 5.11.4. .SH "Core Enhancements" .IX Header "Core Enhancements" .SS "32\-bit limit on substr arguments removed" .IX Subsection "32-bit limit on substr arguments removed" The 32\-bit limit on \f(CW\*(C`substr\*(C'\fR arguments has now been removed. The full range of the system's signed and unsigned integers is now available for the \f(CW\*(C`pos\*(C'\fR and \f(CW\*(C`len\*(C'\fR arguments. .SH "Modules and Pragmata" .IX Header "Modules and Pragmata" .SS "Pragmata Changes" .IX Subsection "Pragmata Changes" .ie n .IP """version""" 4 .el .IP "\f(CWversion\fR" 4 .IX Item "version" Upgraded from version 0.81 to 0.82. .Sp The \f(CW\*(C`is_lax\*(C'\fR and \f(CW\*(C`is_strict\*(C'\fR functions can now be optionally exported to the caller's namespace and are also now documented. .Sp Undefined version objects are now uninitialized with zero rather than \f(CW\*(C`undef\*(C'\fR. .SS "Updated Modules" .IX Subsection "Updated Modules" .ie n .IP """B::Debug""" 4 .el .IP "\f(CWB::Debug\fR" 4 .IX Item "B::Debug" Upgraded from version 1.11 to 1.12. .ie n .IP """CPAN""" 4 .el .IP "\f(CWCPAN\fR" 4 .IX Item "CPAN" Upgraded from version 1.94_53 to 1.94_56. .Sp This resolves \s-1RT\s0 #72362, in which \s-1CPAN\s0 was ignoring \f(CW\*(C`configure_requires\*(C'\fR, and \s-1RT\s0 #72348, in which the command \f(CW\*(C`o conf init\*(C'\fR in the \s-1CPAN\s0 shell could cause an exception to be thrown. .Sp This module is also now built in a less specialized way, which resolves a problem that caused \f(CW\*(C`make\*(C'\fR after \f(CW\*(C`make clean\*(C'\fR to fail, fixing \s-1RT\s0 #72218. .ie n .IP """CPANPLUS::Dist::Build""" 4 .el .IP "\f(CWCPANPLUS::Dist::Build\fR" 4 .IX Item "CPANPLUS::Dist::Build" Upgraded from version 0.44 to 0.46. .Sp This makes the prereq resolving fall back to \fI_build/\fR querying if the \&\f(CW\*(C`prereq_data\*(C'\fR action fails. .ie n .IP """Pod::Perldoc""" 4 .el .IP "\f(CWPod::Perldoc\fR" 4 .IX Item "Pod::Perldoc" Upgraded from version 3.15_01 to 3.15_02. .ie n .IP """Pod::Plainer""" 4 .el .IP "\f(CWPod::Plainer\fR" 4 .IX Item "Pod::Plainer" Upgraded from version 1.01 to 1.02. .ie n .IP """Safe""" 4 .el .IP "\f(CWSafe\fR" 4 .IX Item "Safe" Upgraded from version 2.21 to 2.22. .Sp This resolves \s-1RT\s0 #72700, in which an exception thrown from a closure was getting lost. .ie n .IP """Socket""" 4 .el .IP "\f(CWSocket\fR" 4 .IX Item "Socket" Upgraded from version 1.85 to 1.86. .Sp This makes the new Socket implementation of \f(CW\*(C`inet_pton\*(C'\fR consistent with the existing Socket6 implementation of \f(CW\*(C`inet_pton\*(C'\fR, fixing \s-1RT\s0 #72884. .ie n .IP """podlators""" 4 .el .IP "\f(CWpodlators\fR" 4 .IX Item "podlators" Upgraded from version 2.2.2 to 2.3.1. .SH "Changes to Existing Documentation" .IX Header "Changes to Existing Documentation" The syntax \f(CW\*(C`unless (EXPR) BLOCK else BLOCK\*(C'\fR is now documented as valid, as is the syntax \f(CW\*(C`unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK\*(C'\fR, although actually using the latter may not be the best idea for the readability of your source code. .SH "Installation and Configuration Improvements" .IX Header "Installation and Configuration Improvements" .SS "Configuration improvements" .IX Subsection "Configuration improvements" Support for SystemTap's \f(CW\*(C`dtrace\*(C'\fR compatibility layer has been added and an issue with linking \f(CW\*(C`miniperl\*(C'\fR has been fixed in the process. .PP \&\f(CW\*(C`less \-R\*(C'\fR is now used instead of \f(CW\*(C`less\*(C'\fR for \f(CW\*(C`groff\*(C'\fR's new usage of \s-1ANSI\s0 escape codes by setting \f(CW$Config{less}\fR (and thereby \f(CW$Config{pager}\fR, which fixes \s-1RT\s0 #72156. .PP \&\s-1USE_PERL_ATOF\s0 is now reported in the compile-time options listed by the \f(CW\*(C`\-V\*(C'\fR switch. .SH "Selected Bug Fixes" .IX Header "Selected Bug Fixes" .IP "\(bu" 4 Arbitrary whitespace is now allowed between \f(CW\*(C`NAME\*(C'\fR and \f(CW\*(C`VERSION\*(C'\fR in \&\f(CW\*(C`package NAME VERSION;\*(C'\fR statements. (Fixes \s-1RT\s0 #72432) .IP "\(bu" 4 A panic caused by trying to load \f(CW\*(C`charnames\*(C'\fR when the parser is already in error (e.g. by a missing \f(CW\*(C`my\*(C'\fR under \f(CW\*(C`use strict;\*(C'\fR) is now averted. This was a regression since Perl 5.10.0. (Fixes \s-1RT\s0 #72590) .IP "\(bu" 4 Reading \f(CW$!\fR no longer causes a \s-1SEGV\s0 for out of range \f(CW\*(C`errno\*(C'\fR values. (Fixes \&\s-1RT\s0 #72850) .IP "\(bu" 4 A possible \s-1SEGV\s0 in \f(CW\*(C`/\eN{...}/\*(C'\fR has been fixed. This was a regression since Perl 5.10. .IP "\(bu" 4 A possible \s-1SEGV\s0 when freeing a scalar that was upgraded to an \f(CW\*(C`SVt_REGEXP\*(C'\fR type from a simple(r) scalar has been fixed. .IP "\(bu" 4 A type conversion bug in \f(CW\*(C`gmtime64\*(C'\fR that caused it to break around \f(CW\*(C`2**48\*(C'\fR has been fixed. .IP "\(bu" 4 Interpolating a regex that makes use of the \f(CW\*(C`charnames\*(C'\fR pragma will no longer cause a run-time error. (Fixes \s-1RT\s0 #56444) .IP "\(bu" 4 Array references assigned to \f(CW*Foo::ISA\fR now have the necessary magic added to them to catch any further updates to the new \f(CW@ISA\fR. (Fixes \s-1RT\s0 #72866) .IP "\(bu" 4 Filehandles are now always blessed into \f(CW\*(C`IO::File\*(C'\fR, which, together with some suitable manipulation of \f(CW@IO::File::ISA\fR, fixes a breakage introduced in Perl 5.11.3 by a change that always blessed filehandles into \f(CW\*(C`IO::Handle\*(C'\fR rather than checking for \f(CW\*(C`FileHandle\*(C'\fR first. .IP "\(bu" 4 A change in the behaviour of \f(CW\*(C`warnings::enabled\*(C'\fR and \f(CW\*(C`warnings::warnif\*(C'\fR in Perl 5.10.0 that wasn't documented at the time is now documented in perl5100delta. (Fixes \s-1RT\s0 #62522) .IP "\(bu" 4 \&\s-1RT\s0 #71504 is now fixed by simply skipping the tests that failed on OpenBSD with ithreads and perlio. .SH "New or Changed Diagnostics" .IX Header "New or Changed Diagnostics" .IP "\(bu" 4 The fatal error \f(CW\*(C`Malformed UTF\-8 returned by \eN\*(C'\fR is now produced if the \&\f(CW\*(C`charnames\*(C'\fR handler returns malformed \s-1UTF\-8\s0. .IP "\(bu" 4 If an unresolved named character or sequence was encountered when compiling a regex pattern then the fatal error \f(CW\*(C`\e\eN{NAME} must be resolved by the lexer\*(C'\fR is now produced. This can happen, for example, when using a single-quotish context like \f(CW\*(C`$re = \*(Aq\eN{SPACE}\*(Aq; $re;\*(C'\fR. See perldiag for more examples of how the lexer can get bypassed. .IP "\(bu" 4 The fatal error \f(CW\*(C`Invalid hexadecimal number in \e\eN{U+...}\*(C'\fR will be produced if the character constant represented by \f(CW\*(C`...\*(C'\fR is not a valid hexadecimal number. .IP "\(bu" 4 The new meaning of \f(CW\*(C`\eN\*(C'\fR as \f(CW\*(C`[^\en]\*(C'\fR is not valid in a bracketed character class, just like \f(CW\*(C`.\*(C'\fR in a character class loses its special meaning, and will cause the fatal error \f(CW\*(C`\e\eN in a character class must be a named character: \&\e\eN{...}\*(C'\fR. .IP "\(bu" 4 The rules on what is legal for the \f(CW\*(C`...\*(C'\fR in \f(CW\*(C`\eN{...}\*(C'\fR have been tightened up so that unless the \f(CW\*(C`...\*(C'\fR begins with an alphabetic character and continues with a combination of alphanumerics, dashes, spaces, parentheses or colons then the warning \f(CW\*(C`Deprecated character(s) in \e\eN{...} starting at \*(Aq%s\*(Aq\*(C'\fR is now issued. .IP "\(bu" 4 The warning \f(CW\*(C`Using just the first characters returned by \eN{}\*(C'\fR will be issued if the \f(CW\*(C`charnames\*(C'\fR handler returns a sequence of characters which exceeds the limit of the number of characters that can be used. The message will indicate which characters were used and which were discarded. .IP "\(bu" 4 Currently, all but the first of the several characters that the \f(CW\*(C`charnames\*(C'\fR handler may return are discarded when used in a regular expression pattern bracketed character class. If this happens then the warning \f(CW\*(C`Using just the first character returned by \eN{} in character class\*(C'\fR will be issued. .IP "\(bu" 4 The warning \f(CW\*(C`Missing right brace on \e\eN{} or unescaped left brace after \e\eN. Assuming the latter\*(C'\fR will be issued if Perl encounters a \f(CW\*(C`\eN{\*(C'\fR but doesn't find a matching \f(CW\*(C`}\*(C'\fR. In this case Perl doesn't know if it was mistakenly omitted, or if \*(L"match non-newline\*(R" followed by "match a \f(CW\*(C`{\*(C'\fR" was desired. It assumes the latter because that is actually a valid interpretation as written, unlike the other case. If you meant the former, you need to add the matching right brace. If you did mean the latter, you can silence this warning by writing instead \f(CW\*(C`\eN\e{\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`gmtime\*(C'\fR and \f(CW\*(C`localtime\*(C'\fR called with numbers smaller than they can reliably handle will now issue the warnings \f(CW\*(C`gmtime(%.0f) too small\*(C'\fR and \&\f(CW\*(C`localtime(%.0f) too small\*(C'\fR. .SH "New Tests" .IX Header "New Tests" .IP "\fIt/op/filehandle.t\fR" 4 .IX Item "t/op/filehandle.t" Tests some suitably portable filetest operators to check that they work as expected, particularly in the light of some internal changes made in how filehandles are blessed. .IP "\fIt/op/time_loop.t\fR" 4 .IX Item "t/op/time_loop.t" Tests that times greater than \f(CW\*(C`2**63\*(C'\fR, which can now be handed to \f(CW\*(C`gmtime\*(C'\fR and \f(CW\*(C`localtime\*(C'\fR, do not cause an internal overflow or an excessively long loop. .SH "Known Problems" .IX Header "Known Problems" Perl 5.11.5 is a development release leading up to Perl 5.12.0. Some notable known problems found in 5.11.5 are listed as dependencies of \s-1RT\s0 #69710, the Perl 5 version 12 meta-ticket. .SH "Acknowledgements" .IX Header "Acknowledgements" Perl 5.11.5 represents approximately one month of development since Perl 5.11.4 and contains 9618 lines of changes across 151 files from 33 authors and committers: .PP \&\*(AEvar Arnfjo\*:r\*(d- Bjarmason, Abigail, brian d foy, Chris Williams, David Golden, David Mitchell, Eric Brine, Frank Wiegand, Gisle Aas, H.Merijn Brand, Jan Dubois, Jesse Vincent, Jim Cromie, John Peacock, Josh ben Jore, Karl Williamson, Marcus Holland-Moritz, Michael G Schwern, Nicholas Clark, Offer Kaye, Philippe Bruhat (BooK), Rafael Garcia-Suarez, Reini Urban, Ricardo Signes, Robin Barker, Slaven Rezic, Steffen Mueller, Steve Hay, Steve Peters, Tim Bunce, Todd Rinaldo, Tony Cook and Vincent Pit. .PP Many of the changes included in this version originated in the \s-1CPAN\s0 modules included in Perl's core. We're grateful to the entire \s-1CPAN\s0 community for helping Perl to flourish. .SH "Reporting Bugs" .IX Header "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. .PP If you believe you have an unreported bug, please run the \fBperlbug\fR 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 \f(CW\*(C`perl \-V\*(C'\fR, will be sent off to perlbug@perl.org to be analyzed by the Perl porting team. .PP 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 \s-1CPAN\s0. .\" Oracle has added the ARC stability level to this manual page .SH ATTRIBUTES See .BR attributes (5) for descriptions of the following attributes: .sp .TS box; cbp-1 | cbp-1 l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE = Availability runtime/perl-512 = Stability Uncommitted .TE .PP .SH "SEE ALSO" .IX Header "SEE ALSO" The \fIChanges\fR file for an explanation of how to view exhaustive details on what changed. .PP The \fI\s-1INSTALL\s0\fR file for how to build Perl. .PP The \fI\s-1README\s0\fR file for general stuff. .PP The \fIArtistic\fR and \fICopying\fR files for copyright information. .SH NOTES .\" Oracle has added source availability information to this manual page This software was built from source available at https://java.net/projects/solaris-userland. The original community source was downloaded from http://www.cpan.org/src/5.0/perl-5.12.5.tar.bz2 Further information about this software can be found on the open source community website at http://www.perl.org/.