perl561delta - what's new for perl v5.6.x
This document describes differences between the 5.005 release and the 5.6.1 release.
- Character
class syntax [: :] is reserved for future extensions
- (W) Within regular expression character classes ([]) the syntax beginning with
"[:" and ending with ":]" is reserved for future extensions. If you
need to represent those character sequences inside a regular expression character class,
just quote the square brackets with the backslash: "\[:" and ":\]".
- Ill-formed logical name
|%s| in prime_env_iter
- (W) A warning peculiar to VMS. A logical name was encountered when preparing to iterate
over %ENV which violates the syntactic rules governing logical names. Because it cannot be
translated normally, it is skipped, and will not appear in %ENV. This may be a benign
occurrence, as some software packages might directly modify logical name tables and
introduce nonstandard names, or it may indicate that a logical name table has been
corrupted.
- In string, @%s now must
be written as \@%s
-
The description of this error used to say:
(Someday it will simply assume that an unbackslashed @
interpolates an array.)
|
|
That day has come, and this fatal error has been removed. It has been replaced by a
non-fatal warning instead. See /Arrays now always
interpolate into double-quoted strings for details.
- Probable precedence problem on %s
-
(W) The compiler found a bareword where it expected a conditional, which often
indicates that an || or && was parsed as part of the last argument of the previous
construct, for example:
- regexp too big
- (F) The current implementation of regular expressions uses shorts as address offsets
within a string. Unfortunately this means that if the regular expression compiles to
longer than 32767, it'll blow up. Usually when you want a regular expression this big,
there is a better way to do it with multiple statements. See perlre.
- Use
of "$$<digit>" to mean "${$}<digit>" is deprecated
-
(D) Perl versions before 5.004 misinterpreted any type marker followed by "$"
and a digit. For example, "$$0" was incorrectly taken to mean "${$}0"
instead of "${$0}". This bug is (mostly) fixed in Perl 5.004.
However, the developers of Perl 5.004 could not fix this bug completely, because at
least two widely-used modules depend on the old meaning of "$$0" in a string. So
Perl 5.004 still interprets "$$<digit>" in the old (broken) way inside
strings; but it generates this message as a warning. And in Perl 5.005, this special
treatment will cease.
If you find what you think is a bug, you might check the articles recently posted to the
comp.lang.perl.misc newsgroup. There may also be information at http://www.perl.com/ , 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.
The Changes file for 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.
Written by Gurusamy Sarathy <gsar@ActiveState.com>, with many contributions
from The Perl Porters.
Send omissions or corrections to <perlbug@perl.org>.
|
|