Cheap web site hosting service by Active-Venture.com
  

 Back to Index

New or Changed Diagnostics

"%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:

 
    open FOO || die;  

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

 
    my $foo, $bar = @_;  

when you meant

 
    my ($foo, $bar) = @_;  

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.

 
    sub doit : locked
    {
        ...  

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.

 

  

 

Cheap domain name search service -
Domain name services at just
$8.95/year only
 

Register domain name -
Buy domain name registration and cheap domain transfer at low, affordable price.

© 2002-2004 Active-Venture.com Web Site Hosting Service

 

[ Perfection is achieved not when you have nothing more to add, but when you have nothing left to take away.   ]

 

 
 
 

Disclaimer: This documentation is provided only for the benefits of our web hosting customers.
For authoritative source of the documentation, please refer to http://www.perldoc.com