perldelta: sort new errors
authorRicardo Signes <rjbs@cpan.org>
Mon, 27 Apr 2015 00:12:00 +0000 (20:12 -0400)
committerRicardo Signes <rjbs@cpan.org>
Wed, 6 May 2015 01:15:01 +0000 (21:15 -0400)
Porting/perl5220delta.pod

index 0294c8c..9664467 100644 (file)
@@ -1017,15 +1017,6 @@ diagnostic messages, see L<perldiag>.
 
 =item *
 
-L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
-
-(F) The pattern looks like a {min,max} quantifier, but the min or max could not
-be parsed as a valid number - either it has leading zeroes, or it represents
-too big a number to cope with.  The S<<-- HERE> shows where in the regular
-expression the problem was discovered.  See L<perlre>.
-
-=item *
-
 L<Bad symbol for scalar|perldiag/"Bad symbol for scalar">
 
 (P) An internal request asked to add a scalar entry to something that
@@ -1033,59 +1024,67 @@ wasn't a symbol table entry.
 
 =item *
 
-L<:const is not permitted on named subroutines|perldiag/":const is not permitted on named subroutines">
+L<Can't use a hash as a reference|perldiag/"Can't use a hash as a reference">
 
-(F) The "const" attribute causes an anonymous subroutine to be run and
-its value captured at the time that it is cloned.  Names subroutines are
-not cloned like this, so the attribute does not make sense on them.
+(F) You tried to use a hash as a reference, as in
+C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>.  Versions of perl E<lt>= 5.6.1
+used to allow this syntax, but shouldn't have.
 
 =item *
 
-L<Cannot chr %f|perldiag/"Cannot chr %f">
+L<Can't use an array as a reference|perldiag/"Can't use an array as a reference">
+
+(F) You tried to use an array as a reference, as in
+C<< @foo->[23] >> or C<< @$ref->[99] >>.  Versions of perl E<lt>= 5.6.1 used to
+allow this syntax, but shouldn't have.
 
 =item *
 
-L<Cannot compress %f in pack|perldiag/"Cannot compress %f in pack">
+L<Can't use 'defined(@array)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(@array)' (Maybe you should just omit the defined()?)">
+
+(F) defined() is not useful on arrays because it
+checks for an undefined I<scalar> value.  If you want to see if the
+array is empty, just use C<if (@array) { # not empty }> for example.
 
 =item *
 
-L<Cannot pack %f with '%c'|perldiag/"Cannot pack %f with '%c'">
+L<Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)">
 
-=item *
+(F) C<defined()> is not usually right on hashes.
 
-L<Cannot print %f with '%c'|perldiag/"Cannot printf %f with '%c'">
+Although C<defined %hash> is false on a plain not-yet-used hash, it
+becomes true in several non-obvious circumstances, including iterators,
+weak references, stash names, even remaining true after C<undef %hash>.
+These things make C<defined %hash> fairly useless in practice, so it now
+generates a fatal error.
 
-=item *
+If a check for non-empty is what you wanted then just put it in boolean
+context (see L<perldata/Scalar values>):
 
-L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error">
+    if (%hash) {
+       # not empty
+    }
 
-(F) Something went horribly bad in hexadecimal float handling.
+If you had C<defined %Foo::Bar::QUUX> to check whether such a package
+variable exists then that's never really been reliable, and isn't
+a good way to enquire about the features of a package, or whether
+it's loaded, etc.
 
 =item *
 
-L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format">
-
-(F) You have configured Perl to use long doubles but
-the internals of the long double format are unknown,
-therefore the hexadecimal float output is impossible.
+L<Cannot chr %f|perldiag/"Cannot chr %f">
 
 =item *
 
-L<In '(?...)', the '(' and '?' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(?...)', the '(' and '?' must be adjacent in regex; marked by <-- HERE in m/%s/">
-
-(F) The two-character sequence C<"(?"> in
-this context in a regular expression pattern should be an
-indivisible token, with nothing intervening between the C<"(">
-and the C<"?">, but you separated them.
+L<Cannot compress %f in pack|perldiag/"Cannot compress %f in pack">
 
 =item *
 
-L<In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <-- HERE in m/%s/">
+L<Cannot pack %f with '%c'|perldiag/"Cannot pack %f with '%c'">
 
-(F) The two-character sequence C<"(*"> in
-this context in a regular expression pattern should be an
-indivisible token, with nothing intervening between the C<"(">
-and the C<"*">, but you separated them.
+=item *
+
+L<Cannot print %f with '%c'|perldiag/"Cannot printf %f with '%c'">
 
 =item *
 
@@ -1109,57 +1108,58 @@ See L<charnames/CUSTOM ALIASES>.
 
 =item *
 
-L<Can't use a hash as a reference|perldiag/"Can't use a hash as a reference">
+L<:const is not permitted on named subroutines|perldiag/":const is not permitted on named subroutines">
 
-(F) You tried to use a hash as a reference, as in
-C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>.  Versions of perl E<lt>= 5.6.1
-used to allow this syntax, but shouldn't have.
+(F) The "const" attribute causes an anonymous subroutine to be run and
+its value captured at the time that it is cloned.  Names subroutines are
+not cloned like this, so the attribute does not make sense on them.
 
 =item *
 
-L<Can't use an array as a reference|perldiag/"Can't use an array as a reference">
+L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error">
 
-(F) You tried to use an array as a reference, as in
-C<< @foo->[23] >> or C<< @$ref->[99] >>.  Versions of perl E<lt>= 5.6.1 used to
-allow this syntax, but shouldn't have.
+(F) Something went horribly bad in hexadecimal float handling.
 
 =item *
 
-L<Can't use 'defined(@array)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(@array)' (Maybe you should just omit the defined()?)">
+L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format">
 
-(F) defined() is not useful on arrays because it
-checks for an undefined I<scalar> value.  If you want to see if the
-array is empty, just use C<if (@array) { # not empty }> for example.
+(F) You have configured Perl to use long doubles but
+the internals of the long double format are unknown,
+therefore the hexadecimal float output is impossible.
 
 =item *
 
-L<Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)">
+L<Illegal suidscript|perldiag/"Illegal suidscript">
 
-(F) C<defined()> is not usually right on hashes.
+(F) The script run under suidperl was somehow illegal.
 
-Although C<defined %hash> is false on a plain not-yet-used hash, it
-becomes true in several non-obvious circumstances, including iterators,
-weak references, stash names, even remaining true after C<undef %hash>.
-These things make C<defined %hash> fairly useless in practice, so it now
-generates a fatal error.
+=item *
 
-If a check for non-empty is what you wanted then just put it in boolean
-context (see L<perldata/Scalar values>):
+L<In '(?...)', the '(' and '?' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(?...)', the '(' and '?' must be adjacent in regex; marked by <-- HERE in m/%s/">
 
-    if (%hash) {
-       # not empty
-    }
+(F) The two-character sequence C<"(?"> in
+this context in a regular expression pattern should be an
+indivisible token, with nothing intervening between the C<"(">
+and the C<"?">, but you separated them.
 
-If you had C<defined %Foo::Bar::QUUX> to check whether such a package
-variable exists then that's never really been reliable, and isn't
-a good way to enquire about the features of a package, or whether
-it's loaded, etc.
+=item *
+
+L<In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <-- HERE in m/%s/">
+
+(F) The two-character sequence C<"(*"> in
+this context in a regular expression pattern should be an
+indivisible token, with nothing intervening between the C<"(">
+and the C<"*">, but you separated them.
 
 =item *
 
-L<Illegal suidscript|perldiag/"Illegal suidscript">
+L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
 
-(F) The script run under suidperl was somehow illegal.
+(F) The pattern looks like a {min,max} quantifier, but the min or max could not
+be parsed as a valid number - either it has leading zeroes, or it represents
+too big a number to cope with.  The S<<-- HERE> shows where in the regular
+expression the problem was discovered.  See L<perlre>.
 
 =back