(F) The script you specified can't be opened for the indicated reason.
-=item Can't provide tied hash usage; use keys(%hash) to test if empty
-
-(F) When a hash is evaluated in scalar context, bucket usage is
-returned if the hash is populated, and false is returned if the hash
-is empty. Bucket usage is not currently available for tied hashes.
-To test if a hash is empty or populated, use keys(%hash) in scalar
-context instead.
-
=item Can't read CRTL environ
(S) A warning peculiar to VMS. Perl tried to read an element of %ENV
long for Perl to handle. You have to be seriously twisted to write code
that triggers this error.
+=item DESTROY created new reference to dead object '%s'
+
+(F) A DESTROY() method created a new reference to the object which is
+just being DESTROYed. Perl is confused, and prefers to abort rather than
+to create a dangling reference.
+
=item Did not produce a valid header
See Server error.
=item (Do you need to predeclare %s?)
-(S) This is an educated guess made in conjunction with the message "%s
-found where operator expected". It often means a subroutine or module
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". It often means a subroutine or module
name is being referenced that hasn't been declared yet. This may be
because of ordering problems in your file, or because of a missing
"sub", "package", "require", or "use" statement. If you're referencing
=item elseif should be elsif
-(S) There is no keyword "elseif" in Perl because Larry thinks it's ugly.
-Your code will be interpreted as an attempt to call a method named
+(S syntax) There is no keyword "elseif" in Perl because Larry thinks it's
+ugly. Your code will be interpreted as an attempt to call a method named
"elseif" for the class returned by the following block. This is
unlikely to be what you want.
(F) While under the C<use filetest> pragma, switching the real and
effective uids or gids failed.
+=item %ENV is aliased to %s
+
+(F) You're running under taint mode, and the C<%ENV> variable has been
+aliased to another hash, so it doesn't reflect anymore the state of the
+program's environment. This is potentially insecure.
+
=item Error converting file specification %s
(F) An error peculiar to VMS. Because Perl may have to deal with file
=item %s found where operator expected
-(S) The Perl lexer knows whether to expect a term or an operator. If it
-sees what it knows to be a term when it was expecting to see an
+(S syntax) The Perl lexer knows whether to expect a term or an operator.
+If it sees what it knows to be a term when it was expecting to see an
operator, it gives you this warning. Usually it indicates that an
operator or delimiter was omitted, such as a semicolon.
=item (Missing operator before %s?)
-(S) This is an educated guess made in conjunction with the message "%s
-found where operator expected". Often the missing operator is a comma.
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". Often the missing operator is a comma.
=item Missing right brace on %s
=item (Missing semicolon on previous line?)
-(S) This is an educated guess made in conjunction with the message "%s
-found where operator expected". Don't automatically put a semicolon on
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". Don't automatically put a semicolon on
the previous line just because you saw this message.
=item Modification of a read-only value attempted
(P) A "can't happen" error, because safemalloc() should have caught it
earlier.
+=item Repeated format line will never terminate (~~ and @# incompatible)
+
+(F) Your format containes the ~~ repeat-until-blank sequence and a
+numeric field that will never go blank so that the repetition never
+terminates. You might use ^# instead. See L<perlform>.
+
=item Reversed %s= operator
(W syntax) You wrote your assignment operator backwards. The = must
use the /g modifier. Currently, /c is meaningful only when /g is
used. (This may change in the future.)
-=item Use of freed value in iteration (perhaps you modified the iterated array within the loop?)
+=item Use of freed value in iteration
-(F) This is typically caused by code like the following:
+(F) Perhaps you modified the iterated array within the loop?
+This error is typically caused by code like the following:
@a = (3,4);
@a = () for (1,2,@a);
(W closure) During compilation, an inner named subroutine or eval is
attempting to capture an outer lexical that is not currently available.
-This can be happen for one of two reasons. First, the outer lexical may be
+This can happen for one of two reasons. First, the outer lexical may be
declared in an outer anonymous subroutine that has not yet been created.
(Remember that named subs are created at compile time, while anonymous
-subs are created at run-time. For example,
+subs are created at run-time.) For example,
sub { my $a; sub f { $a } }