+//depot/perl/pod/perldiag.pod#272 - edit change 14824 (text)
=head1 NAME
perldiag - various Perl diagnostics
must either both be scalars or both be lists. Otherwise Perl won't
know which context to supply to the right side.
-=item Negative offset to vec in lvalue context
-
-(F) When C<vec> is called in an lvalue context, the second argument must be
-greater than or equal to zero.
-
-=item Attempt to access to key '%_' in fixed hash
+=item Attempt to access key '%_' in fixed hash
(F) A hash has been marked as READONLY at the C level to turn it
into a "record" with a fixed set of keys. The failing code
checks for an undefined I<scalar> value. If you want to see if the hash
is empty, just use C<if (%hash) { # not empty }> for example.
+=item %s defines neither package nor VERSION--version check failed
+
+(F) You said something like "use Module 42" but in the Module file
+there are neither package declarations nor a C<$VERSION>.
+
=item Delimiter for here document is too long
(F) In a here document construct like C<<<FOO>, the label C<FOO> is too
See Server error.
+=item %s does not define %s::VERSION--version check failed
+
+(F) You said something like "use Module 42" but the Module did not
+define a C<$VERSION.>
+
=item Don't know how to handle magic of type '%s'
(P) The internal handling of magical variables has been cursed.
filenames, try using the glob() operator, or put the filenames into a
variable and glob that.
+=item exec? I'm not *that* kind of operating system
+
+(F) The C<exec> function is not implemented in MacPerl. See L<perlport>.
+
=item Execution of %s aborted due to compilation errors
(F) The final summary message when a Perl compilation fails.
(F) Unlike with "next" or "last", you're not allowed to goto an
unspecified destination. See L<perlfunc/goto>.
+=item %s-group starts with a count
+
+(F) In pack/unpack a ()-group started with a count. A count is
+supposed to follow something: a template character or a ()-group.
+
=item %s had compilation errors
(F) The final summary message when a C<perl -c> fails.
you omitted the name of the module. Consult L<perlrun> for full details
about C<-M> and C<-m>.
+=item More than one argument to open
+
+(F) The C<open> function has been asked to open multiple files. This
+can happen if you are trying to open a pipe to a command that takes a
+list of arguments, but have forgotten to specify a piped open mode.
+See L<perlfunc/open> for details.
+
=item msg%s not implemented
(F) You don't have System V message IPC on your system.
(F) You tried to do a read/write/send/recv operation with a buffer
length that is less than 0. This is difficult to imagine.
+=item Negative offset to vec in lvalue context
+
+(F) When C<vec> is called in an lvalue context, the second argument must be
+greater than or equal to zero.
+
=item Nested quantifiers in regex; marked by <-- HERE in m/%s/
(F) You can't quantify a quantifier without intervening parentheses. So
of Perl. Check the #! line, or manually feed your script into Perl
yourself.
+=item %s not allowed in length fields
+
+(F) The count in the (un)pack template may be replaced by C<[TEMPLATE]> only if
+C<TEMPLATE> always matches the same amount of packed bytes. Redesign
+the template.
+
=item no UTC offset information; assuming local time is UTC
(S) A warning peculiar to VMS. Perl was unable to find the local
(F) The class in the character class [: :] syntax is unknown. The <-- HERE
shows in the regular expression about where the problem was discovered.
-See L<perlre>.
+Note that the POSIX character classes do B<not> have the C<is> prefix
+the corresponding C interfaces have: in other words, it's C<[[:print:]]>,
+not C<isprint>. See L<perlre>.
=item POSIX getpgrp can't take an argument
(S prototype) The subroutine being declared or defined had previously been
declared or defined with a different function prototype.
+=item Prototype not terminated
+
+(F) You've omitted the closing parenthesis in a function prototype
+definition.
+
=item Quantifier in {,} bigger than %d in regex;
marked by <-- HERE in m/%s/
suppressed for subroutine names by either adding a C<&> prefix, or using
a package qualifier, e.g. C<&our()>, or C<Foo::our()>.
+=item Use of tainted arguments in %s is deprecated
+
+(W taint) You have supplied C<system()> or C<exec()> with multiple
+arguments and at least one of them is tainted. This used to be allowed
+but will become a fatal error in a future version of perl. Untaint your
+arguments. See L<perlsec>.
+
=item Use of uninitialized value%s
(W uninitialized) An undefined value was used as if it were already