- "%s"
variable %s masks earlier declaration in same %s
- (W misc) A "my" or "our" variable has been redeclared in the current
scope or statement, effectively eliminating all access to the previous instance. This is
almost always a typographical error. Note that the earlier variable will still exist until
the end of the scope or until all closure referents to it are destroyed.
- "my sub" not yet implemented
- (F) Lexically scoped subroutines are not yet implemented. Don't try that yet.
- "our" variable %s redeclared
- (W misc) You seem to have already declared the same global once before in the current
lexical scope.
- '!' allowed only after types %s
- (F) The '!' is allowed in pack() and unpack() only after certain types. See perlfunc/pack.
- / cannot take a count
- (F) You had an unpack template indicating a counted-length string, but you have also
specified an explicit size for the string. See perlfunc/pack.
- / must be followed by a, A or Z
- (F) You had an unpack template indicating a counted-length string, which must be
followed by one of the letters a, A or Z to indicate what sort of string is to be
unpacked. See perlfunc/pack.
- / must be followed by a*, A* or Z*
- (F) You had a pack template indicating a counted-length string, Currently the only
things that can have their length counted are a*, A* or Z*. See perlfunc/pack.
- / must follow a numeric type
- (F) You had an unpack template that contained a '#', but this did not follow some
numeric unpack specification. See perlfunc/pack.
- /%s/: Unrecognized
escape \\%c passed through
- (W regexp) You used a backslash-character combination which is not recognized by Perl.
This combination appears in an interpolated variable or a
'-delimited regular
expression. The character was understood literally.
- /%s/:
Unrecognized escape \\%c in character class passed through
- (W regexp) You used a backslash-character combination which is not recognized by Perl
inside character classes. The character was understood literally.
- /%s/ should probably be written as
"%s"
- (W syntax) You have used a pattern where Perl expected to find a string, as in the first
argument to
join. Perl will treat the true or false result of matching the
pattern against $_ as the string, which is probably not what you had in mind.
- %s() called too early to check
prototype
- (W prototype) You've called a function that has a prototype before the parser saw a
definition or declaration for it, and Perl could not check that the call conforms to the
prototype. You need to either add an early prototype declaration for the subroutine in
question, or move the subroutine definition ahead of the call to get proper prototype
checking. Alternatively, if you are certain that you're calling the function correctly,
you may put an ampersand before the name to avoid the warning. See perlsub.
- %s argument is not a HASH or
ARRAY element
-
(F) The argument to exists() must be a hash or array element, such as:
$foo{$bar}
$ref->{"susie"}[12]
|
|
- %s argument is not a
HASH or ARRAY element or slice
-
(F) The argument to delete() must be either a hash or array element, such as:
$foo{$bar}
$ref->{"susie"}[12]
|
|
or a hash or array slice, such as:
@foo[$bar, $baz, $xyzzy]
@{$ref->[12]}{"susie", "queue"}
|
|
- %s argument is not a subroutine name
- (F) The argument to exists() for
exists &sub must be a subroutine name,
and not a subroutine call. exists &sub() will generate this error.
- %s package
attribute may clash with future reserved word: %s
- (W reserved) A lowercase attribute name was used that had a package-specific handler.
That name might have a meaning to Perl itself some day, even though it doesn't yet.
Perhaps you should use a mixed-case attribute name, instead. See attributes.
- (in cleanup) %s
-
(W misc) This prefix usually indicates that a DESTROY() method raised the indicated
exception. Since destructors are usually called by the system at arbitrary points during
execution, and often a vast number of times, the warning is issued only once for any
number of failures that would otherwise result in the same message being repeated.
Failure of user callbacks dispatched using the G_KEEPERR flag could also
result in this warning. See perlcall/G_KEEPERR.
- <> should be quotes
- (F) You wrote
require <file> when you should have written require
'file'.
- Attempt to join self
- (F) You tried to join a thread from within itself, which is an impossible task. You may
be joining the wrong thread, or you may need to move the join() to some other thread.
- Bad evalled substitution pattern
- (F) You've used the /e switch to evaluate the replacement for a substitution, but perl
found a syntax error in the code to evaluate, most likely an unexpected right brace '}'.
- Bad realloc() ignored
- (S) An internal routine called realloc() on something that had never been malloc()ed in
the first place. Mandatory, but can be disabled by setting environment variable
PERL_BADFREE
to 1.
- Bareword found in conditional
-
(W bareword) 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:
It may also indicate a misspelled constant that has been interpreted as a bareword:
use constant TYPO => 1;
if (TYOP) { print "foo" }
|
|
The strict pragma is useful in avoiding such errors.
- Binary
number > 0b11111111111111111111111111111111 non-portable
- (W portable) The binary number you specified is larger than 2**32-1 (4294967295) and
therefore non-portable between systems. See perlport for more on
portability concerns.
- Bit vector size > 32 non-portable
- (W portable) Using bit vector sizes larger than 32 is non-portable.
- Buffer overflow in prime_env_iter: %s
- (W internal) A warning peculiar to VMS. While Perl was preparing to iterate over %ENV,
it encountered a logical name or symbol definition which was too long, so it was truncated
to the string shown.
- Can't check filesystem of script
"%s"
- (P) For some reason you can't check the filesystem of the script for nosuid.
- Can't declare class for
non-scalar %s in "%s"
- (S) Currently, only scalar variables can declared with a specific class qualifier in a
"my" or "our" declaration. The semantics may be extended for other
types of variables in future.
- Can't declare %s in "%s"
- (F) Only scalar, array, and hash variables may be declared as "my" or
"our" variables. They must have ordinary identifiers as names.
- Can't ignore signal CHLD,
forcing to default
- (W signal) Perl has detected that it is being run with the SIGCHLD signal (sometimes
known as SIGCLD) disabled. Since disabling this signal will interfere with proper
determination of exit status of child processes, Perl has reset the signal to its default
value. This situation typically indicates that the parent program under which Perl may be
running (e.g., cron) is being very careless.
- Can't modify non-lvalue subroutine
call
- (F) Subroutines meant to be used in lvalue context should be declared as such, see perlsub/"Lvalue
subroutines".
- Can't read CRTL environ
- (S) A warning peculiar to VMS. Perl tried to read an element of %ENV from the CRTL's
internal environment array and discovered the array was missing. You need to figure out
where your CRTL misplaced its environ or define PERL_ENV_TABLES (see perlvms) so that environ is
not searched.
- Can't remove %s: %s, skipping file
- (S) You requested an inplace edit without creating a backup file. Perl was unable to
remove the original file to replace it with the modified file. The file was left
unmodified.
- Can't return %s from lvalue
subroutine
- (F) Perl detected an attempt to return illegal lvalues (such as temporary or readonly
values) from a subroutine used as an lvalue. This is not allowed.
- Can't weaken a nonreference
- (F) You attempted to weaken something that was not a reference. Only references can be
weakened.
- Character class [:%s:] unknown
- (F) The class in the character class [: :] syntax is unknown. See perlre.
- Character
class syntax [%s] belongs inside character classes
- (W unsafe) The character class constructs [: :], [= =], and [. .] go inside
character classes, the [] are part of the construct, for example: /[012[:alpha:]345]/.
Note that [= =] and [. .] are not currently implemented; they are simply placeholders for
future extensions.
- Constant is not %s reference
- (F) A constant value (perhaps declared using the
use constant pragma) is
being dereferenced, but it amounts to the wrong type of reference. The message indicates
the type of reference that was expected. This usually indicates a syntax error in
dereferencing the constant value. See perlsub/"Constant
Functions" and constant.
- constant(%s): %s
- (F) The parser found inconsistencies either while attempting to define an overloaded
constant, or when trying to find the character name specified in the
\N{...}
escape. Perhaps you forgot to load the corresponding overload or charnames
pragma? See charnames
and overload.
- CORE::%s is not a keyword
- (F) The CORE:: namespace is reserved for Perl keywords.
- defined(@array) is deprecated
- (D) defined() is not usually useful on arrays because it checks for an undefined scalar
value. If you want to see if the array is empty, just use
if (@array) { # not empty
} for example.
- defined(%hash) is deprecated
- (D) defined() is not usually useful on hashes because it checks for an undefined scalar
value. If you want to see if the hash is empty, just use
if (%hash) { # not empty }
for example.
- Did not produce a valid header
- See Server error.
- (Did you mean "local"
instead of "our"?)
- (W misc) Remember that "our" does not localize the declared global variable.
You have declared it again in the same lexical scope, which seems superfluous.
- Document contains no data
- See Server error.
- entering effective %s failed
- (F) While under the
use filetest pragma, switching the real and effective
uids or gids failed.
- false [] range "%s" in regexp
- (W regexp) A character class range must start and end at a literal character, not
another character class like
\d or [:alpha:]. The "-"
in your false range is interpreted as a literal "-". Consider quoting the
"-", "\-". See perlre.
- Filehandle %s opened only for output
- (W io) You tried to read from a filehandle opened only for writing. If you intended it
to be a read/write filehandle, you needed to open it with "+<" or
"+>" or "+>>" instead of with "<" or nothing. If
you intended only to read from the file, use "<". See perlfunc/open.
- flock() on closed filehandle %s
- (W closed) The filehandle you're attempting to flock() got itself closed some time
before now. Check your logic flow. flock() operates on filehandles. Are you attempting to
call flock() on a dirhandle by the same name?
- Global symbol
"%s" requires explicit package name
- (F) You've said "use strict vars", which indicates that all variables must
either be lexically scoped (using "my"), declared beforehand using
"our", or explicitly qualified to say which package the global variable is in
(using "::").
- Hexadecimal number >
0xffffffff non-portable
- (W portable) The hexadecimal number you specified is larger than 2**32-1 (4294967295)
and therefore non-portable between systems. See perlport for more on
portability concerns.
- Ill-formed CRTL environ value
"%s"
- (W internal) A warning peculiar to VMS. Perl tried to read the CRTL's internal environ
array, and encountered an element without the
= delimiter used to separate
keys from values. The element is ignored.
- Ill-formed message in
prime_env_iter: |%s|
- (W internal) A warning peculiar to VMS. Perl tried to read a logical name or CLI symbol
definition when preparing to iterate over %ENV, and didn't see the expected delimiter
between key and value, so the line was ignored.
- Illegal binary digit %s
- (F) You used a digit other than 0 or 1 in a binary number.
- Illegal binary digit %s ignored
- (W digit) You may have tried to use a digit other than 0 or 1 in a binary number.
Interpretation of the binary number stopped before the offending digit.
- Illegal number of bits in vec
- (F) The number of bits in vec() (the third argument) must be a power of two from 1 to 32
(or 64, if your platform supports that).
- Integer overflow in %s number
- (W overflow) The hexadecimal, octal or binary number you have specified either as a
literal or as an argument to hex() or oct() is too big for your architecture, and has been
converted to a floating point number. On a 32-bit architecture the largest hexadecimal,
octal or binary number representable without overflow is 0xFFFFFFFF, 037777777777, or
0b11111111111111111111111111111111 respectively. Note that Perl transparently promotes all
numbers to a floating point representation internally--subject to loss of precision errors
in subsequent operations.
- Invalid %s attribute: %s
- The indicated attribute for a subroutine or variable was not recognized by Perl or by a
user-supplied handler. See attributes.
- Invalid %s attributes: %s
- The indicated attributes for a subroutine or variable were not recognized by Perl or by
a user-supplied handler. See attributes.
- invalid [] range "%s" in
regexp
- The offending range is now explicitly displayed.
- Invalid separator character
%s in attribute list
- (F) Something other than a colon or whitespace was seen between the elements of an
attribute list. If the previous attribute had a parenthesised parameter list, perhaps that
list was terminated too soon. See attributes.
- Invalid
separator character %s in subroutine attribute list
- (F) Something other than a colon or whitespace was seen between the elements of a
subroutine attribute list. If the previous attribute had a parenthesised parameter list,
perhaps that list was terminated too soon.
- leaving effective %s failed
- (F) While under the
use filetest pragma, switching the real and effective
uids or gids failed.
- Lvalue subs returning %s not
implemented yet
- (F) Due to limitations in the current implementation, array and hash values cannot be
returned in subroutines used in lvalue context. See perlsub/"Lvalue
subroutines".
- Method %s not permitted
- See Server error.
- Missing %sbrace%s on \N{}
- (F) Wrong syntax of character name literal
\N{charname} within double-quotish
context.
- Missing command in piped open
- (W pipe) You used the
open(FH, "| command") or open(FH,
"command |") construction, but the command was missing or blank.
- Missing name in "my sub"
- (F) The reserved syntax for lexically scoped subroutines requires that they have a name
with which they can be found.
- No %s specified for -%c
- (F) The indicated command line switch needs a mandatory argument, but you haven't
specified one.
- No package name allowed for
variable %s in "our"
- (F) Fully qualified variable names are not allowed in "our" declarations,
because that doesn't make much sense under existing semantics. Such syntax is reserved for
future extensions.
- No space allowed after -%c
- (F) The argument to the indicated command line switch must follow immediately after the
switch, without intervening spaces.
- no UTC offset
information; assuming local time is UTC
- (S) A warning peculiar to VMS. Perl was unable to find the local timezone offset, so
it's assuming that local system time is equivalent to UTC. If it's not, define the logical
name SYS$TIMEZONE_DIFFERENTIAL to translate to the number of seconds which need to
be added to UTC to get local time.
- Octal number > 037777777777
non-portable
-
(W portable) The octal number you specified is larger than 2**32-1 (4294967295) and
therefore non-portable between systems. See perlport for more on
portability concerns.
See also perlport for
writing portable code.
- panic: del_backref
- (P) Failed an internal consistency check while trying to reset a weak reference.
- panic: kid popen errno read
- (F) forked child returned an incomprehensible message about its errno.
- panic: magic_killbackrefs
- (P) Failed an internal consistency check while trying to reset all weak references to an
object.
- Parentheses missing around
"%s" list
-
(W parenthesis) You said something like
when you meant
Remember that "my", "our", and "local" bind tighter than
comma.
- Possible unintended
interpolation of %s in string
-
(W ambiguous) It used to be that Perl would try to guess whether you wanted an array
interpolated or a literal @. It no longer does this; arrays are now always
interpolated into strings. This means that if you try something like:
print "fred@example.com";
|
|
and the array @example doesn't exist, Perl is going to print fred.com,
which is probably not what you wanted. To get a literal @ sign in a string,
put a backslash before it, just as you would to get a literal $ sign.
- Possible Y2K bug: %s
- (W y2k) You are concatenating the number 19 with another number, which could be a
potential Year 2000 problem.
- pragma "attrs"
is deprecated, use "sub NAME : ATTRS" instead
-
(W deprecated) You have written something like this:
sub doit
{
use attrs qw(locked);
}
|
|
You should use the new declaration syntax instead.
The use attrs pragma is now obsolete, and is only provided for
backward-compatibility. See perlsub/"Subroutine
Attributes".
- Premature end of script headers
- See Server error.
- Repeat count in pack overflows
- (F) You can't specify a repeat count so large that it overflows your signed integers.
See perlfunc/pack.
- Repeat count in unpack overflows
- (F) You can't specify a repeat count so large that it overflows your signed integers.
See perlfunc/unpack.
- realloc() of freed memory ignored
- (S) An internal routine called realloc() on something that had already been freed.
- Reference is already weak
- (W misc) You have attempted to weaken a reference that is already weak. Doing so has no
effect.
- setpgrp can't take arguments
- (F) Your system has the setpgrp() from BSD 4.2, which takes no arguments, unlike POSIX
setpgid(), which takes a process ID and process group ID.
- Strange *+?{} on zero-length
expression
- (W regexp) You applied a regular expression quantifier in a place where it makes no
sense, such as on a zero-width assertion. Try putting the quantifier inside the assertion
instead. For example, the way to match "abc" provided that it is followed by
three repetitions of "xyz" is
/abc(?=(?:xyz){3})/, not /abc(?=xyz){3}/.
- switching effective %s is not
implemented
- (F) While under the
use filetest pragma, we cannot switch the real and
effective uids or gids.
- This Perl can't reset CRTL
environ elements (%s)
-
- This Perl can't set
CRTL environ elements (%s=%s)
- (W internal) Warnings peculiar to VMS. You tried to change or delete an element of the
CRTL's internal environ array, but your copy of Perl wasn't built with a CRTL that
contained the setenv() function. You'll need to rebuild Perl with a CRTL that does, or
redefine PERL_ENV_TABLES (see perlvms) so that the environ
array isn't the target of the change to %ENV which produced the warning.
- Too late to run %s block
- (W void) A CHECK or INIT block is being defined during run time proper, when the
opportunity to run them has already passed. Perhaps you are loading a file with
require
or do when you should be using use instead. Or perhaps you
should put the require or do inside a BEGIN block.
- Unknown open() mode '%s'
- (F) The second argument of 3-argument open() is not among the list of valid modes:
<,
>, >>, +<, +>, +>>,
-|, |-.
- Unknown process %x
sent message to prime_env_iter: %s
- (P) An error peculiar to VMS. Perl was reading values for %ENV before iterating over it,
and someone else stuck a message in the stream of data Perl expected. Someone's very
confused, or perhaps trying to subvert Perl's population of %ENV for nefarious purposes.
- Unrecognized escape \\%c passed
through
- (W misc) You used a backslash-character combination which is not recognized by Perl. The
character was understood literally.
- Unterminated attribute
parameter in attribute list
- (F) The lexer saw an opening (left) parenthesis character while parsing an attribute
list, but the matching closing (right) parenthesis character was not found. You may need
to add (or remove) a backslash character to get your parentheses to balance. See attributes.
- Unterminated attribute list
- (F) The lexer found something other than a simple identifier at the start of an
attribute, and it wasn't a semicolon or the start of a block. Perhaps you terminated the
parameter list of the previous attribute too soon. See attributes.
- Unterminated
attribute parameter in subroutine attribute list
- (F) The lexer saw an opening (left) parenthesis character while parsing a subroutine
attribute list, but the matching closing (right) parenthesis character was not found. You
may need to add (or remove) a backslash character to get your parentheses to balance.
- Unterminated subroutine attribute list
- (F) The lexer found something other than a simple identifier at the start of a
subroutine attribute, and it wasn't a semicolon or the start of a block. Perhaps you
terminated the parameter list of the previous attribute too soon.
- Value of CLI symbol "%s" too
long
- (W misc) A warning peculiar to VMS. Perl tried to read the value of an %ENV element from
a CLI symbol table, and found a resultant string longer than 1024 characters. The return
value has been truncated to 1024 characters.
- Version number must be a constant
number
- (P) The attempt to translate a
use Module n.n LIST statement into its
equivalent BEGIN block found an internal inconsistency with the version
number.
|
|