Trappable errors may be trapped using the eval operator. The messages are in alphabetical order, without regard unary and binary operator overloading in c++ pdf upper or lower-case.
Some of these messages are generic. These escapes are ignored by the alphabetical order, as are all characters other than letters. To look up your message, just ignore anything that is not a letter. You tried to do an accept on a closed socket. This warning is emitted if you use a reference constructor on the left-hand side of an assignment to alias one variable to another. You can’t allocate more than 64K on an MS-DOS machine. An alpha version can not be numified without losing information.
A subroutine you have declared has the same name as a Perl keyword, and you have used the name without qualification for calling one or the other. Perl decided to call the builtin because the subroutine is not imported. To force interpretation as a subroutine call, either put an ampersand before the subroutine name, or qualify the name with its package. To include a – character in a transliteration, put it either first or last.
You said something that may not be interpreted the way you thought. Normally it’s pretty easy to disambiguate it by supplying a missing quote, operator, parenthesis pair or declaration. Perl does its own command line redirection, and thinks you tried to redirect stdout both to a file and into a pipe to another command. This is probably not what you meant to do. The indicated string was fed as an argument to an operator that expected a numeric value instead.
If you’re fortunate the message will identify which operator was so unfortunate. Layers take care of transforming data between external and internal representations. Perl stopped parsing the layer list at this point and did not attempt to push this layer. See Auto-increment and Auto-decrement in perlop for details. The malloc package that comes with Perl had an internal failure.
The file in question must be examined. You tried to assign a reference to a reference constructor, but the two references were not of the same type. Since these aren’t legal POSIX class specifications, but are legal bracketed character classes, Perl treats them as the latter. The failing code has attempted to get or set a key which is not in the current set of allowed keys of a restricted hash.
Perl cannot figure out what to do, so it throws up in hands in despair. An array was assigned to when it was being freed. Freed values are not supposed to be visible to Perl code. The failing code attempted to delete from a restricted hash a key which is not in its key set. The failing code attempted to delete a key whose value has been declared readonly from a restricted hash. All SV objects are supposed to be allocated from arenas that will be garbage collected on exit. An SV was discovered to be outside any of those arenas.
Perl maintains a reference-counted internal table of strings to optimize the storage and access of hash keys and other strings. This indicates someone tried to decrement the reference count of a string that can no longer be found in the table. The reference counts got screwed up on symbol aliases. Perl went to decrement the reference count of a scalar to see if it would go to 0, and discovered that it had already gone to 0 earlier, and should have been freed, and in fact, probably was freed. This means the result contains a pointer to a location that could become invalid anytime, even before the end of the current statement. You tried to load a file with use or require that failed to compile once already.
You tried to set the length of an array which has been freed. You can do this by storing a reference to the scalar representing the last index of an array and later assigning through that reference. Perhaps you forgot to dereference it first. Attribute “locked” is deprecated, and will disappear in Perl 5. You have used the attributes pragma to modify the “locked” attribute on a code reference. The :locked attribute is obsolete, has had no effect since 5005 threads were removed, and will be removed in a Perl 5.
Attribute “unique” is deprecated, and will disappear in Perl 5. You have used the attributes pragma to modify the “unique” attribute on an array, hash or scalar reference. The :unique attribute has had no effect since Perl 5. 8, and will be removed in a Perl 5. A symbol was passed to something wanting a filehandle, but the symbol has no filehandle associated with it. One of the internal hash routines was passed a null HV pointer.
You’ve accidentally run your script through csh instead of Perl. You started to name a symbol by using a package prefix, and then didn’t finish the symbol. An extension using the keyword plugin mechanism violated the plugin API. An internal request asked to add an array entry to something that wasn’t a symbol table entry. An internal request asked to add a dirhandle entry to something that wasn’t a symbol table entry. An internal request asked to add a filehandle entry to something that wasn’t a symbol table entry.