Front page | perl.perl5.porters |
Postings from April 2000
Re: [ID 20000403.009] uninitialised concatenation???
From:
simon
Date:
April 4, 2000 22:18
Subject:
Re: [ID 20000403.009] uninitialised concatenation???
Message ID:
slrn8elj2e.r9.simon@othersideofthe.earth.li
David Glasser (lists.p5p):
>Those are good changes, but do you really want to split "that " over a line
>break?
Grief, this message is already messy enough in a standard 80-column wide
terminal. This patch makes things nicer for those of us still on glass
TTYs:
--- pod/perldiag.pod~ Wed Apr 5 13:28:50 2000
+++ pod/perldiag.pod Wed Apr 5 14:16:12 2000
@@ -44,11 +44,11 @@
=item "%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.
+(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.
=item "my sub" not yet implemented
@@ -57,24 +57,24 @@
=item "my" variable %s can't be in a package
-(F) Lexically scoped variables aren't in a package, so it doesn't make sense
-to try to declare one with a package qualifier on the front. Use local()
-if you want to localize a package variable.
+(F) Lexically scoped variables aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front. Use
+local() if you want to localize a package variable.
=item "no" not allowed in expression
-(F) The "no" keyword is recognized and executed at compile time, and returns
-no useful value. See L<perlmod>.
+(F) The "no" keyword is recognized and executed at compile time, and
+returns no useful value. See L<perlmod>.
=item "our" variable %s redeclared
-(W misc) You seem to have already declared the same global once before in the
-current lexical scope.
+(W misc) You seem to have already declared the same global once before in
+the current lexical scope.
=item "use" not allowed in expression
-(F) The "use" keyword is recognized and executed at compile time, and returns
-no useful value. See L<perlmod>.
+(F) The "use" keyword is recognized and executed at compile time, and
+returns no useful value. See L<perlmod>.
=item '!' allowed only after types %s
@@ -96,9 +96,9 @@
=item / 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 L<perlfunc/pack>.
+(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
+L<perlfunc/pack>.
=item / must follow a numeric type
@@ -114,14 +114,16 @@
=item /%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
-C<'>-delimited regular expression. The character was understood literally.
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl. This combination appears in an interpolated variable
+or a C<'>-delimited regular expression. The character was understood
+literally.
=item /%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.
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl inside character classes. The character was
+understood literally.
=item /%s/ should probably be written as "%s"
@@ -132,19 +134,21 @@
=item %s (...) interpreted as function
-(W syntax) You've run afoul of the rule that says that any list operator followed
-by parentheses turns into a function, with all the list operators arguments
-found inside the parentheses. See L<perlop/Terms and List Operators (Leftward)>.
+(W syntax) You've run afoul of the rule that says that any list operator
+followed by parentheses turns into a function, with all the list
+operators arguments found inside the parentheses. See L<perlop/Terms and
+List Operators (Leftward)>.
=item %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 L<perlsub>.
+(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 L<perlsub>.
=item %s argument is not a HASH or ARRAY element
@@ -196,19 +200,20 @@
=item %s matches null string many times
(W regexp) The pattern you've specified would be an infinite loop if the
-regular expression engine didn't specifically check for that. See L<perlre>.
+regular expression engine didn't specifically check for that. See
+L<perlre>.
=item %s never introduced
-(S internal) The symbol in question was declared but somehow went out of scope
-before it could possibly have been used.
+(S internal) The symbol in question was declared but somehow went out of
+scope before it could possibly have been used.
=item %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 L<attributes>.
+(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 L<attributes>.
=item %s syntax OK
@@ -293,8 +298,8 @@
=item accept() on closed socket %s
-(W closed) You tried to do an accept on a closed socket. Did you forget to check
-the return value of your socket() call? See L<perlfunc/accept>.
+(W closed) You tried to do an accept on a closed socket. Did you forget
+to check the return value of your socket() call? See L<perlfunc/accept>.
=item Allocation too large: %lx
@@ -302,11 +307,11 @@
=item Applying %s to %s will act on scalar(%s)
-(W misc) The pattern match (//), substitution (s///), and transliteration (tr///)
-operators work on scalar values. If you apply one of them to an array
-or a hash, it will convert the array or hash to a scalar value -- the
-length of an array, or the population info of a hash -- and then work on
-that scalar value. This is probably not what you meant to do. See
+(W misc) The pattern match (//), substitution (s///), and transliteration
+(tr///) operators work on scalar values. If you apply one of them to an
+array or a hash, it will convert the array or hash to a scalar value --
+the length of an array, or the population info of a hash -- and then work
+on that scalar value. This is probably not what you meant to do. See
L<perlfunc/grep> and L<perlfunc/map> for alternatives.
=item Arg too short for msgsnd
@@ -321,9 +326,9 @@
=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
-(W ambiguous) 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
+(W ambiguous) 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
@@ -351,8 +356,8 @@
=item Array @%s missing the @ in argument %d of %s()
-(D deprecated) Really old Perl let you omit the @ on array names in some spots. This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the @ on array names in some
+spots. This is now heavily deprecated.
=item assertion botched: %s
@@ -370,16 +375,16 @@
=item Attempt to free non-arena SV: 0x%lx
-(P internal) 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.
+(P internal) 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.
=item Attempt to free nonexistent shared string
-(P internal) 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.
+(P internal) 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.
=item Attempt to free temp prematurely
@@ -395,12 +400,13 @@
=item Attempt to free unreferenced scalar
-(W internal) 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
-could indicate that SvREFCNT_dec() was called too many times, or that
-SvREFCNT_inc() was called too few times, or that the SV was mortalized
-when it shouldn't have been, or that memory has been corrupted.
+(W internal) 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 could indicate that SvREFCNT_dec() was called too many times, or
+that SvREFCNT_inc() was called too few times, or that the SV was
+mortalized when it shouldn't have been, or that memory has been
+corrupted.
=item Attempt to join self
@@ -419,8 +425,8 @@
=item Attempt to use reference as lvalue in substr
-(W substr) You supplied a reference as the first argument to substr() used
-as an lvalue, which is pretty strange. Perhaps you forgot to
+(W substr) You supplied a reference as the first argument to substr()
+used as an lvalue, which is pretty strange. Perhaps you forgot to
dereference it first. See L<perlfunc/substr>.
=item Bad arg length for %s, is %d, should be %d
@@ -439,13 +445,13 @@
=item Bad filehandle: %s
(F) A symbol was passed to something wanting a filehandle, but the symbol
-has no filehandle associated with it. Perhaps you didn't do an open(), or
-did it in another package.
+has no filehandle associated with it. Perhaps you didn't do an open(),
+or did it in another package.
=item Bad free() ignored
-(S malloc) An internal routine called free() on something that had never been
-malloc()ed in the first place. Mandatory, but can be disabled by
+(S malloc) An internal routine called free() on something that had never
+been malloc()ed in the first place. Mandatory, but can be disabled by
setting environment variable C<PERL_BADFREE> to 1.
This message can be quite often seen with DB_File on systems with
@@ -465,9 +471,9 @@
=item Bad name after %s::
-(F) You started to name a symbol by using a package prefix, and then didn't
-finish the symbol. In particular, you can't interpolate outside of quotes,
-so
+(F) You started to name a symbol by using a package prefix, and then
+didn't finish the symbol. In particular, you can't interpolate outside
+of quotes, so
$var = 'myvar';
$sym = mypack::$var;
@@ -479,9 +485,9 @@
=item Bad realloc() ignored
-(S malloc) 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 C<PERL_BADFREE> to 1.
+(S malloc) 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 C<PERL_BADFREE> to 1.
=item Bad symbol for array
@@ -506,9 +512,9 @@
=item Bareword "%s" not allowed while "strict subs" in use
-(F) With "strict subs" in use, a bareword is only allowed as a
-subroutine identifier, in curly brackets or to the left of the "=>" symbol.
-Perhaps you need to predeclare a subroutine?
+(F) With "strict subs" in use, a bareword is only allowed as a subroutine
+identifier, in curly brackets or to the left of the "=>" symbol. Perhaps
+you need to predeclare a subroutine?
=item Bareword "%s" refers to nonexistent package
@@ -519,7 +525,7 @@
=item 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
+wphich often indicates that an || or && was parsed as part of the
last argument of the previous construct, for example:
open FOO || die;
@@ -553,8 +559,8 @@
=item bind() on closed socket %s
-(W closed) You tried to do a bind on a closed socket. Did you forget to check
-the return value of your socket() call? See L<perlfunc/bind>.
+(W closed) You tried to do a bind on a closed socket. Did you forget to
+check the return value of your socket() call? See L<perlfunc/bind>.
=item Bit vector size > 32 non-portable
@@ -566,9 +572,9 @@
=item 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.
+(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.
=item Callback called exit
@@ -610,8 +616,9 @@
(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 F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not searched.
+missing. You need to figure out where your CRTL misplaced its environ or
+define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not
+searched.
=item Can't "redo" outside a loop block
@@ -629,9 +636,9 @@
=item Can't break at that line
-(S internal) A warning intended to only be printed while running within the debugger, indicating
-the line number specified wasn't the location of a statement that could
-be stopped at.
+(S internal) A warning intended to only be printed while running within
+the debugger, indicating the line number specified wasn't the location of
+a statement that could be stopped at.
=item Can't call method "%s" in empty package "%s"
@@ -709,8 +716,8 @@
=item Can't create pipe mailbox
-(P) An error peculiar to VMS. The process is suffering from exhausted quotas
-or other plumbing problems.
+(P) An error peculiar to VMS. The process is suffering from exhausted
+quotas or other plumbing problems.
=item Can't declare class for non-scalar %s in "%s"
@@ -729,9 +736,9 @@
=item Can't do inplace edit without backup
-(F) You're on a system such as MS-DOS that gets confused if you try reading
-from a deleted (but still opened) file. You have to say C<-i.bak>, or some
-such.
+(F) You're on a system such as MS-DOS that gets confused if you try
+reading from a deleted (but still opened) file. You have to say
+C<-i.bak>, or some such.
=item Can't do inplace edit: %s would not be unique
@@ -741,8 +748,8 @@
=item Can't do inplace edit: %s is not a regular file
-(S inplace) You tried to use the B<-i> switch on a special file, such as a file in
-/dev, or a FIFO. The file was ignored.
+(S inplace) You tried to use the B<-i> switch on a special file, such as
+a file in /dev, or a FIFO. The file was ignored.
=item Can't do setegid!
@@ -764,8 +771,8 @@
=item Can't do waitpid with flags
-(F) This machine doesn't have either waitpid() or wait4(), so only waitpid()
-without flags is emulated.
+(F) This machine doesn't have either waitpid() or wait4(), so only
+waitpid() without flags is emulated.
=item Can't do {n,m} with n > m
@@ -779,45 +786,46 @@
=item Can't exec "%s": %s
-(W exec) An system(), exec(), or piped open call could not execute the named
-program for the indicated reason. Typical reasons include: the permissions
-were wrong on the file, the file wasn't found in C<$ENV{PATH}>, the
-executable in question was compiled for another architecture, or the
-#! line in a script points to an interpreter that can't be run for
-similar reasons. (Or maybe your system doesn't support #! at all.)
+(W exec) An system(), exec(), or piped open call could not execute the
+named program for the indicated reason. Typical reasons include: the
+permissions were wrong on the file, the file wasn't found in
+C<$ENV{PATH}>, the executable in question was compiled for another
+architecture, or the #! line in a script points to an interpreter that
+can't be run for similar reasons. (Or maybe your system doesn't support
+#! at all.)
=item Can't exec %s
-(F) Perl was trying to execute the indicated program for you because that's
-what the #! line said. If that's not what you wanted, you may need to
-mention "perl" on the #! line somewhere.
+(F) Perl was trying to execute the indicated program for you because
+that's what the #! line said. If that's not what you wanted, you may
+need to mention "perl" on the #! line somewhere.
=item Can't execute %s
-(F) You used the B<-S> switch, but the copies of the script to execute found
-in the PATH did not have correct permissions.
+(F) You used the B<-S> switch, but the copies of the script to execute
+found in the PATH did not have correct permissions.
=item Can't find %s on PATH, '.' not in PATH
-(F) You used the B<-S> switch, but the script to execute could not be found
-in the PATH, or at least not with the correct permissions. The script
-exists in the current directory, but PATH prohibits running it.
+(F) You used the B<-S> switch, but the script to execute could not be
+found in the PATH, or at least not with the correct permissions. The
+script exists in the current directory, but PATH prohibits running it.
=item Can't find %s on PATH
-(F) You used the B<-S> switch, but the script to execute could not be found
-in the PATH.
+(F) You used the B<-S> switch, but the script to execute could not be
+found in the PATH.
=item Can't find label %s
-(F) You said to goto a label that isn't mentioned anywhere that it's possible
-for us to go to. See L<perlfunc/goto>.
+(F) You said to goto a label that isn't mentioned anywhere that it's
+possible for us to go to. See L<perlfunc/goto>.
=item Can't find string terminator %s anywhere before EOF
-(F) Perl strings can stretch over multiple lines. This message means that
-the closing delimiter was omitted. Because bracketed quotes count nesting
-levels, the following is missing its final parenthesis:
+(F) Perl strings can stretch over multiple lines. This message means
+that the closing delimiter was omitted. Because bracketed quotes count
+nesting levels, the following is missing its final parenthesis:
print q(The character '(' starts a side comment.);
@@ -831,25 +839,26 @@
=item Can't get filespec - stale stat buffer?
-(S) A warning peculiar to VMS. This arises because of the difference between
-access checks under VMS and under the Unix model Perl assumes. Under VMS,
-access checks are done by filename, rather than by bits in the stat buffer, so
-that ACLs and other protections can be taken into account. Unfortunately, Perl
-assumes that the stat buffer contains all the necessary information, and passes
-it, instead of the filespec, to the access checking routine. It will try to
-retrieve the filespec using the device name and FID present in the stat buffer,
-but this works only if you haven't made a subsequent call to the CRTL stat()
-routine, because the device name is overwritten with each call. If this warning
-appears, the name lookup failed, and the access checking routine gave up and
-returned FALSE, just to be conservative. (Note: The access checking routine
-knows about the Perl C<stat> operator and file tests, so you shouldn't ever
-see this warning in response to a Perl command; it arises only if some internal
-code takes stat buffers lightly.)
+(S) A warning peculiar to VMS. This arises because of the difference
+between access checks under VMS and under the Unix model Perl assumes.
+Under VMS, access checks are done by filename, rather than by bits in the
+stat buffer, so that ACLs and other protections can be taken into
+account. Unfortunately, Perl assumes that the stat buffer contains all
+the necessary information, and passes it, instead of the filespec, to the
+access checking routine. It will try to retrieve the filespec using the
+device name and FID present in the stat buffer, but this works only if
+you haven't made a subsequent call to the CRTL stat() routine, because
+the device name is overwritten with each call. If this warning appears,
+the name lookup failed, and the access checking routine gave up and
+returned FALSE, just to be conservative. (Note: The access checking
+routine knows about the Perl C<stat> operator and file tests, so you
+shouldn't ever see this warning in response to a Perl command; it arises
+only if some internal code takes stat buffers lightly.)
=item Can't get pipe mailbox device name
-(P) An error peculiar to VMS. After creating a mailbox to act as a pipe, Perl
-can't retrieve its name for later use.
+(P) An error peculiar to VMS. After creating a mailbox to act as a pipe,
+Perl can't retrieve its name for later use.
=item Can't get SYSGEN parameter value for MAXBUF
@@ -858,15 +867,16 @@
=item Can't goto subroutine outside a subroutine
-(F) The deeply magical "goto subroutine" call can only replace one subroutine
-call for another. It can't manufacture one out of whole cloth. In general
-you should be calling it out of only an AUTOLOAD routine anyway. See
-L<perlfunc/goto>.
+(F) The deeply magical "goto subroutine" call can only replace one
+subroutine call for another. It can't manufacture one out of whole
+cloth. In general you should be calling it out of only an AUTOLOAD
+routine anyway. See L<perlfunc/goto>.
=item Can't goto subroutine from an eval-string
-(F) The "goto subroutine" call can't be used to jump out of an eval "string".
-(You can use it to jump out of an eval {BLOCK}, but you probably don't want to.)
+(F) The "goto subroutine" call can't be used to jump out of an eval
+"string". (You can use it to jump out of an eval {BLOCK}, but you
+probably don't want to.)
=item Can't ignore signal CHLD, forcing to default
@@ -923,8 +933,8 @@
=item Can't locate package %s for @%s::ISA
-(W syntax) The @ISA array contained the name of another package that doesn't seem
-to exist.
+(W syntax) The @ISA array contained the name of another package that
+doesn't seem to exist.
=item Can't make list assignment to \%ENV on this system
@@ -932,8 +942,8 @@
=item Can't modify %s in %s
-(F) You aren't allowed to assign to the item indicated, or otherwise try to
-change it, such as with an auto-increment.
+(F) You aren't allowed to assign to the item indicated, or otherwise try
+to change it, such as with an auto-increment.
=item Can't modify non-lvalue subroutine call
@@ -960,32 +970,34 @@
=item Can't open bidirectional pipe
-(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported. You can
-try any of several modules in the Perl library to do this, such as
-IPC::Open2. Alternately, direct the pipe's output to a file using ">",
-and then read it in under a different file handle.
+(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported.
+You can try any of several modules in the Perl library to do this, such
+as IPC::Open2. Alternately, direct the pipe's output to a file using
+">", and then read it in under a different file handle.
=item Can't open error file %s as stderr
-(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '2>' or '2>>' on the
-command line for writing.
+(F) An error peculiar to VMS. Perl does its own command line
+redirection, and couldn't open the file specified after '2>' or '2>>' on
+the command line for writing.
=item Can't open input file %s as stdin
-(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '<' on the command line for reading.
+(F) An error peculiar to VMS. Perl does its own command line
+redirection, and couldn't open the file specified after '<' on the
+command line for reading.
=item Can't open output file %s as stdout
-(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '>' or '>>' on the command
-line for writing.
+(F) An error peculiar to VMS. Perl does its own command line
+redirection, and couldn't open the file specified after '>' or '>>' on
+the command line for writing.
=item Can't open output pipe (name: %s)
-(P) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the pipe into which to send data destined for stdout.
+(P) An error peculiar to VMS. Perl does its own command line
+redirection, and couldn't open the pipe into which to send data destined
+for stdout.
=item Can't open perl script "%s": %s
@@ -1000,9 +1012,9 @@
=item Can't remove %s: %s, skipping file
-(S inplace) 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.
+(S inplace) 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.
=item Can't rename %s to %s: %s, skipping file
@@ -1011,8 +1023,8 @@
=item Can't reopen input pipe (name: %s) in binary mode
-(P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried to
-reopen it to accept binary data. Alas, it failed.
+(P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried
+to reopen it to accept binary data. Alas, it failed.
=item Can't reswap uid and euid
@@ -1093,7 +1105,8 @@
=item Can't use %s for loop variable
-(F) Only a simple scalar variable may be used as a loop variable on a foreach.
+(F) Only a simple scalar variable may be used as a loop variable on a
+foreach.
=item Can't use %s ref as %s ref
@@ -1103,11 +1116,12 @@
=item Can't use \%c to mean $%c in expression
-(W syntax) In an ordinary expression, backslash is a unary operator that creates
-a reference to its argument. The use of backslash to indicate a backreference
-to a matched substring is valid only as part of a regular expression pattern.
-Trying to do this in ordinary Perl code produces a value that prints
-out looking like SCALAR(0xdecaf). Use the $1 form instead.
+(W syntax) In an ordinary expression, backslash is a unary operator that
+creates a reference to its argument. The use of backslash to indicate a
+backreference to a matched substring is valid only as part of a regular
+expression pattern. Trying to do this in ordinary Perl code produces a
+value that prints out looking like SCALAR(0xdecaf). Use the $1 form
+instead.
=item Can't use bareword ("%s") as %s ref while "strict refs" in use
@@ -1126,11 +1140,10 @@
=item Can't use global %s in "my"
-(F) You tried to declare a magical variable as a lexical variable. This is
-not allowed, because the magic can be tied to only one location (namely
-the global variable) and it would be incredibly confusing to have
-variables in your program that looked like magical variables but
-weren't.
+(F) You tried to declare a magical variable as a lexical variable. This
+is not allowed, because the magic can be tied to only one location
+(namely the global variable) and it would be incredibly confusing to have
+variables in your program that looked like magical variables but weren't.
=item Can't use subscript on %s
@@ -1175,11 +1188,11 @@
=item Character class syntax [. .] is reserved for future extensions
-(W regexp) Within regular expression character classes ([]) the syntax beginning
-with "[." and ending with ".]" is reserved for future extensions.
-If you need to represent those character sequences inside a regular
-expression character class, just quote the square brackets with the
-backslash: "\[." and ".\]".
+(W regexp) Within regular expression character classes ([]) the syntax
+beginning with "[." and ending with ".]" is reserved for future
+extensions. If you need to represent those character sequences inside a
+regular expression character class, just quote the square brackets with
+the backslash: "\[." and ".\]".
=item Character class syntax [= =] is reserved for future extensions
@@ -1195,8 +1208,9 @@
chmod 777, $filename
-not realizing that 777 will be interpreted as a decimal number, equivalent
-to 01411. Octal constants are introduced with a leading 0 in Perl, as in C.
+not realizing that 777 will be interpreted as a decimal number,
+equivalent to 01411. Octal constants are introduced with a leading 0 in
+Perl, as in C.
=item Close on unopened file <%s>
@@ -1210,20 +1224,21 @@
=item Complex regular subexpression recursion limit (%d) exceeded
-(W regexp) The regular expression engine uses recursion in complex situations
-where back-tracking is required. Recursion depth is limited to 32766,
-or perhaps less in architectures where the stack cannot grow
+(W regexp) The regular expression engine uses recursion in complex
+situations where back-tracking is required. Recursion depth is limited
+to 32766, or perhaps less in architectures where the stack cannot grow
arbitrarily. ("Simple" and "medium" situations are handled without
recursion and are not subject to a limit.) Try shortening the string
-under examination; looping in Perl code (e.g. with C<while>) rather
-than in the regular expression engine; or rewriting the regular
-expression so that it is simpler or backtracks less. (See L<perlbook>
-for information on I<Mastering Regular Expressions>.)
+under examination; looping in Perl code (e.g. with C<while>) rather than
+in the regular expression engine; or rewriting the regular expression so
+that it is simpler or backtracks less. (See L<perlbook> for information
+on I<Mastering Regular Expressions>.)
=item connect() on closed socket %s
-(W closed) You tried to do a connect on a closed socket. Did you forget to check
-the return value of your socket() call? See L<perlfunc/connect>.
+(W closed) You tried to do a connect on a closed socket. Did you forget
+to check the return value of your socket() call? See
+L<perlfunc/connect>.
=item Constant is not %s reference
@@ -1235,14 +1250,14 @@
=item Constant subroutine %s redefined
-(S|W redefine) You redefined a subroutine which had previously been eligible for
-inlining. See L<perlsub/"Constant Functions"> for commentary and
-workarounds.
+(S|W redefine) You redefined a subroutine which had previously been
+eligible for inlining. See L<perlsub/"Constant Functions"> for
+commentary and workarounds.
=item Constant subroutine %s undefined
-(W misc) You undefined a subroutine which had previously been eligible for
-inlining. See L<perlsub/"Constant Functions"> for commentary and
+(W misc) You undefined a subroutine which had previously been eligible
+for inlining. See L<perlsub/"Constant Functions"> for commentary and
workarounds.
=item constant(%s): %s
@@ -1276,22 +1291,22 @@
=item Deep recursion on subroutine "%s"
-(W recursion) This subroutine has called itself (directly or indirectly) 100
-times more than it has returned. This probably indicates an infinite
+(W recursion) This subroutine has called itself (directly or indirectly)
+100 times more than it has returned. This probably indicates an infinite
recursion, unless you're writing strange benchmark programs, in which
case it indicates something else.
=item defined(@array) is deprecated
-(D deprecated) defined() is not usually useful on arrays because it checks for an
-undefined I<scalar> value. If you want to see if the array is empty,
-just use C<if (@array) { # not empty }> for example.
+(D deprecated) defined() is not usually useful on arrays because it
+checks for an undefined I<scalar> value. If you want to see if the array
+is empty, just use C<if (@array) { # not empty }> for example.
=item defined(%hash) is deprecated
-(D deprecated) defined() is not usually useful on hashes because it 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.
+(D deprecated) defined() is not usually useful on hashes because it
+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 Delimiter for here document is too long
@@ -1305,17 +1320,20 @@
=item (Did you mean &%s instead?)
-(W) You probably referred to an imported subroutine &FOO as $FOO or some such.
+(W) You probably referred to an imported subroutine &FOO as $FOO or some
+such.
=item (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.
+(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.
=item (Did you mean $ or @ instead of %?)
-(W) You probably said %hash{$key} when you meant $hash{$key} or @hash{@keys}.
-On the other hand, maybe you just meant %hash and got carried away.
+(W) You probably said %hash{$key} when you meant $hash{$key} or
+@hash{@keys}. On the other hand, maybe you just meant %hash and got
+carried away.
=item Died
@@ -1421,9 +1439,9 @@
=item Exiting pseudo-block via %s
-(W exiting) You are exiting a rather special block construct (like a sort block or
-subroutine) by unconventional means, such as a goto, or a loop control
-statement. See L<perlfunc/sort>.
+(W exiting) You are exiting a rather special block construct (like a sort
+block or subroutine) by unconventional means, such as a goto, or a loop
+control statement. See L<perlfunc/sort>.
=item Exiting subroutine via %s
@@ -1444,17 +1462,17 @@
=item false [] range "%s" in regexp
-(W regexp) A character class range must start and end at a literal character, not
-another character class like C<\d> or C<[:alpha:]>. The "-" in your false
-range is interpreted as a literal "-". Consider quoting the "-", "\-".
-See L<perlre>.
+(W regexp) A character class range must start and end at a literal
+character, not another character class like C<\d> or C<[:alpha:]>. The
+"-" in your false range is interpreted as a literal "-". Consider
+quoting the "-", "\-". See L<perlre>.
=item Fatal VMS error at %s, line %d
-(P) An error peculiar to VMS. Something untoward happened in a VMS system
-service or RTL routine; Perl's exit status should provide more details. The
-filename in "at %s" and the line number in "line %d" tell you which section of
-the Perl source code is distressed.
+(P) An error peculiar to VMS. Something untoward happened in a VMS
+system service or RTL routine; Perl's exit status should provide more
+details. The filename in "at %s" and the line number in "line %d" tell
+you which section of the Perl source code is distressed.
=item fcntl is not implemented
@@ -1463,9 +1481,9 @@
=item Filehandle %s never opened
-(W unopened) An I/O operation was attempted on a filehandle that was never initialized.
-You need to do an open() or a socket() call, or call a constructor from
-the FileHandle package.
+(W unopened) An I/O operation was attempted on a filehandle that was
+never initialized. You need to do an open() or a socket() call, or call a
+constructor from the FileHandle package.
=item Filehandle %s opened only for input
@@ -1499,9 +1517,10 @@
=item 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?
+(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?
=item Format %s redefined
@@ -1584,14 +1603,14 @@
=item Had to create %s unexpectedly
-(S internal) A routine asked for a symbol from a symbol table that ought to have
-existed already, but for some reason it didn't, and had to be created on
-an emergency basis to prevent a core dump.
+(S internal) A routine asked for a symbol from a symbol table that ought
+to have existed already, but for some reason it didn't, and had to be
+created on an emergency basis to prevent a core dump.
=item Hash %%s missing the % in argument %d of %s()
-(D deprecated) Really old Perl let you omit the % on hash names in some spots. This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the % on hash names in some
+spots. This is now heavily deprecated.
=item Hexadecimal number > 0xffffffff non-portable
@@ -1608,9 +1627,9 @@
=item 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 C<=> delimiter
-used to spearate keys from values. The element is ignored.
+(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's
+internal environ array, and encountered an element without the C<=>
+delimiter used to spearate keys from values. The element is ignored.
=item Ill-formed message in prime_env_iter: |%s|
@@ -1629,8 +1648,9 @@
=item Illegal division by zero
-(F) You tried to divide a number by 0. Either something was wrong in your
-logic, or you need to put a conditional in to guard against meaningless input.
+(F) You tried to divide a number by 0. Either something was wrong in
+your logic, or you need to put a conditional in to guard against
+meaningless input.
=item Illegal modulus zero
@@ -1647,19 +1667,20 @@
=item 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.
+(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.
=item Illegal octal digit %s ignored
-(W digit) You may have tried to use an 8 or 9 in a octal number. Interpretation
-of the octal number stopped before the 8 or 9.
+(W digit) You may have tried to use an 8 or 9 in a octal number.
+Interpretation of the octal number stopped before the 8 or 9.
=item Illegal hexadecimal digit %s ignored
-(W digit) You may have tried to use a character other than 0 - 9 or A - F, a - f
-in a hexadecimal number. Interpretation of the hexadecimal number stopped
-before the illegal character.
+(W digit) You may have tried to use a character other than 0 - 9 or A - F,
+a - f in a hexadecimal number. Interpretation of the hexadecimal number
+stopped before the illegal character.
=item Illegal number of bits in vec
@@ -1707,15 +1728,14 @@
=item 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
+(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.
+internally--subject to loss of precision errors in subsequent operations.
=item Internal inconsistency in tracking vforks
@@ -1765,14 +1785,14 @@
=item Invalid type in pack: '%s'
(F) The given character is not a valid pack type. See L<perlfunc/pack>.
-(W pack) The given character is not a valid pack type but used to be silently
-ignored.
+(W pack) The given character is not a valid pack type but used to be
+silently ignored.
=item Invalid type in unpack: '%s'
(F) The given character is not a valid unpack type. See L<perlfunc/unpack>.
-(W unpack) The given character is not a valid unpack type but used to be silently
-ignored.
+(W unpack) The given character is not a valid unpack type but used to be
+silently ignored.
=item ioctl is not implemented
@@ -1808,8 +1828,8 @@
=item listen() on closed socket %s
-(W closed) You tried to do a listen on a closed socket. Did you forget to check
-the return value of your socket() call? See L<perlfunc/listen>.
+(W closed) You tried to do a listen on a closed socket. Did you forget
+to check the return value of your socket() call? See L<perlfunc/listen>.
=item Lvalue subs returning %s not implemented yet
@@ -1838,9 +1858,9 @@
=item Missing $ on loop variable
-(F) Apparently you've been programming in B<csh> too much. Variables are always
-mentioned with the $ in Perl, unlike in the shells, where it can vary from
-one line to the next.
+(F) Apparently you've been programming in B<csh> too much. Variables are
+always mentioned with the $ in Perl, unlike in the shells, where it can
+vary from one line to the next.
=item Missing %sbrace%s on \N{}
@@ -1900,8 +1920,8 @@
=item Multidimensional syntax %s not supported
-(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>. They're written
-like C<$foo[1][2][3]>, as in C.
+(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>.
+They're written like C<$foo[1][2][3]>, as in C.
=item Missing name in "my sub"
@@ -1925,8 +1945,8 @@
(F) You can't quantify a quantifier without intervening parentheses. So
things like ** or +* or ?* are illegal.
-Note, however, that the minimal matching quantifiers, C<*?>, C<+?>, and C<??> appear
-to be nested quantifiers, but aren't. See L<perlre>.
+Note, however, that the minimal matching quantifiers, C<*?>, C<+?>, and
+C<??> appear to be nested quantifiers, but aren't. See L<perlre>.
=item No #! line
@@ -1969,9 +1989,9 @@
=item No command into which to pipe on command line
-(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '|' at the end of the command line, so it doesn't know where you
-want to pipe the output from this command.
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a '|' at the end of the command line, so it
+doesn't know where you want to pipe the output from this command.
=item No DB::DB routine defined
@@ -1996,27 +2016,27 @@
=item No error file after 2> or 2>> on command line
-(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '2>' or a '2>>' on the command line, but can't find
-the name of the file to which to write data destined for stderr.
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a '2>' or a '2>>' on the command line, but can't
+find the name of the file to which to write data destined for stderr.
=item No input file after < on command line
-(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '<' on the command line, but can't find the name of the file
-from which to read data for stdin.
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a '<' on the command line, but can't find the name
+of the file from which to read data for stdin.
=item No output file after > on command line
-(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a lone '>' at the end of the command line, so it doesn't know
-where you wanted to redirect stdout.
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a lone '>' at the end of the command line, so it
+doesn't know where you wanted to redirect stdout.
=item No output file after > or >> on command line
-(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '>' or a '>>' on the command line, but can't find the
-name of the file to which to write data destined for stdout.
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a '>' or a '>>' on the command line, but can't
+find the name of the file to which to write data destined for stdout.
=item No package name allowed for variable %s in "our"
@@ -2041,8 +2061,8 @@
=item No space allowed after -%c
-(F) The argument to the indicated command line switch must follow immediately
-after the switch, without intervening spaces.
+(F) The argument to the indicated command line switch must follow
+immediately after the switch, without intervening spaces.
=item No such pseudo-hash field "%s"
@@ -2060,13 +2080,14 @@
=item No such pipe open
(P) An error peculiar to VMS. The internal routine my_pclose() tried to
-close a pipe which hadn't been opened. This should have been caught earlier as
-an attempt to close an unopened filehandle.
+close a pipe which hadn't been opened. This should have been caught
+earlier as an attempt to close an unopened filehandle.
=item No such signal: SIG%s
-(W signal) You specified a signal name as a subscript to %SIG that was not recognized.
-Say C<kill -l> in your shell to see the valid signal names on your system.
+(W signal) You specified a signal name as a subscript to %SIG that was
+not recognized. Say C<kill -l> in your shell to see the valid signal
+names on your system.
=item no UTC offset information; assuming local time is UTC
@@ -2137,13 +2158,13 @@
=item Not enough format arguments
-(W syntax) A format specified more picture fields than the next line supplied.
-See L<perlform>.
+(W syntax) A format specified more picture fields than the next line
+supplied. See L<perlform>.
=item Null filename used
-(F) You can't require the null filename, especially because on many machines
-that means the current directory! See L<perlfunc/require>.
+(F) You can't require the null filename, especially because on many
+machines that means the current directory! See L<perlfunc/require>.
=item Null picture in formline
@@ -2153,7 +2174,8 @@
=item NULL OP IN RUN
-(P debugging) Some internal routine called run() with a null opcode pointer.
+(P debugging) Some internal routine called run() with a null opcode
+pointer.
=item Null realloc
@@ -2169,29 +2191,30 @@
=item Number too long
-(F) Perl limits the representation of decimal numbers in programs to about
-about 250 characters. You've exceeded that length. Future versions of
-Perl are likely to eliminate this arbitrary limitation. In the meantime,
-try using scientific notation (e.g. "1e6" instead of "1_000_000").
+(F) Perl limits the representation of decimal numbers in programs to
+about about 250 characters. You've exceeded that length. Future
+versions of Perl are likely to eliminate this arbitrary limitation. In
+the meantime, try using scientific notation (e.g. "1e6" instead of
+"1_000_000").
=item 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 L<perlport> for more
-on portability concerns.
+(W portable) The octal number you specified is larger than 2**32-1
+(4294967295) and therefore non-portable between systems. See L<perlport>
+for more on portability concerns.
See also L<perlport> for writing portable code.
=item Octal number in vector unsupported
-(F) Numbers with a leading C<0> are not currently allowed in vectors. The
-octal number interpretation of such numbers may be supported in a future
-version.
+(F) Numbers with a leading C<0> are not currently allowed in vectors.
+The octal number interpretation of such numbers may be supported in a
+future version.
=item Odd number of elements in hash assignment
-(W misc) You specified an odd number of elements to initialize a hash, which
-is odd, because hashes come in key/value pairs.
+(W misc) You specified an odd number of elements to initialize a hash,
+which is odd, because hashes come in key/value pairs.
=item Offset outside string
@@ -2256,8 +2279,8 @@
=item Out of memory during ridiculously large request
(F) You can't allocate more than 2^31+"small amount" bytes. This error
-is most likely to be caused by a typo in the Perl program. e.g., C<$arr[time]>
-instead of C<$arr[$time]>.
+is most likely to be caused by a typo in the Perl program. e.g.,
+C<$arr[time]> instead of C<$arr[$time]>.
=item page overflow
@@ -2274,8 +2297,8 @@
=item panic: corrupt saved stack index
-(P) The savestack was requested to restore more localized values than there
-are in the savestack.
+(P) The savestack was requested to restore more localized values than
+there are in the savestack.
=item panic: del_backref
@@ -2289,7 +2312,8 @@
=item panic: do_match
-(P) The internal pp_match() routine was called with invalid operational data.
+(P) The internal pp_match() routine was called with invalid operational
+data.
=item panic: do_split
@@ -2297,11 +2321,13 @@
=item panic: do_subst
-(P) The internal pp_subst() routine was called with invalid operational data.
+(P) The internal pp_subst() routine was called with invalid operational
+data.
=item panic: do_trans
-(P) The internal do_trans() routine was called with invalid operational data.
+(P) The internal do_trans() routine was called with invalid operational
+data.
=item panic: frexp
@@ -2441,8 +2467,8 @@
=item Perl %3.3f required--this is only version %s, stopped
(F) The module in question uses features of a version of Perl more recent
-than the currently running version. How long has it been since you upgraded,
-anyway? See L<perlfunc/require>.
+than the currently running version. How long has it been since you
+upgraded, anyway? See L<perlfunc/require>.
=item Permission denied
@@ -2450,9 +2476,9 @@
=item pid %x not a child
-(W exec) A warning peculiar to VMS. Waitpid() was asked to wait for a process which
-isn't a subprocess of the current process. While this is fine from VMS'
-perspective, it's probably not what you intended.
+(W exec) A warning peculiar to VMS. Waitpid() was asked to wait for a
+process which isn't a subprocess of the current process. While this is
+fine from VMS' perspective, it's probably not what you intended.
=item POSIX getpgrp can't take an argument
@@ -2555,18 +2581,18 @@
=item print() on closed filehandle %s
-(W closed) The filehandle you're printing on got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're printing on got itself closed sometime
+before now. Check your logic flow.
=item printf() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your logic flow.
=item Prototype mismatch: %s vs %s
-(S unsafe) The subroutine being declared or defined had previously been declared
-or defined with a different function prototype.
+(S unsafe) The subroutine being declared or defined had previously been
+declared or defined with a different function prototype.
=item Range iterator outside integer range
@@ -2577,13 +2603,13 @@
=item readline() on closed filehandle %s
-(W closed) The filehandle you're reading from got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're reading from got itself closed sometime
+before now. Check your logic flow.
=item realloc() of freed memory ignored
-(S malloc) An internal routine called realloc() on something that had already
-been freed.
+(S malloc) An internal routine called realloc() on something that had
+already been freed.
=item Reallocation too large: %lx
@@ -2591,8 +2617,8 @@
=item Recompile perl with B<-D>DEBUGGING to use B<-D> switch
-(F debugging) You can't use the B<-D> option unless the code to produce the
-desired output is compiled into Perl, which entails some overhead,
+(F debugging) You can't use the B<-D> option unless the code to produce
+the desired output is compiled into Perl, which entails some overhead,
which is why it's currently left out of your copy.
=item Recursive inheritance detected in package '%s'
@@ -2603,7 +2629,8 @@
=item Recursive inheritance detected while looking for method '%s' in package '%s'
(F) More than 100 levels of inheritance were encountered while invoking a
-method. Probably indicates an unintended loop in your inheritance hierarchy.
+method. Probably indicates an unintended loop in your inheritance
+hierarchy.
=item Reference found where even-sized list expected
@@ -2639,7 +2666,8 @@
=item regexp out of space
-(P) A "can't happen" error, because safemalloc() should have caught it earlier.
+(P) A "can't happen" error, because safemalloc() should have caught it
+earlier.
=item Repeat count in pack overflows
@@ -2653,8 +2681,8 @@
=item Reversed %s= operator
-(W syntax) You wrote your assignment operator backwards. The = must always
-comes last, to avoid ambiguity with subsequent unary operators.
+(W syntax) You wrote your assignment operator backwards. The = must
+always comes last, to avoid ambiguity with subsequent unary operators.
=item Runaway format
@@ -2666,12 +2694,13 @@
=item Scalar value @%s[%s] better written as $%s[%s]
-(W syntax) You've used an array slice (indicated by @) to select a single element of
-an array. Generally it's better to ask for a scalar value (indicated by $).
-The difference is that C<$foo[&bar]> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo[&bar]> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
+(W syntax) You've used an array slice (indicated by @) to select a single
+element of an array. Generally it's better to ask for a scalar value
+(indicated by $). The difference is that C<$foo[&bar]> always behaves
+like a scalar, both when assigning to it and when evaluating its
+argument, while C<@foo[&bar]> behaves like a list when you assign to it,
+and provides a list context to its subscript, which can do weird things
+if you're expecting only one subscript.
On the other hand, if you were actually hoping to treat the array
element as a list, you need to look into how references work, because
@@ -2680,12 +2709,13 @@
=item Scalar value @%s{%s} better written as $%s{%s}
-(W syntax) You've used a hash slice (indicated by @) to select a single element of
-a hash. Generally it's better to ask for a scalar value (indicated by $).
-The difference is that C<$foo{&bar}> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo{&bar}> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
+(W syntax) You've used a hash slice (indicated by @) to select a single
+element of a hash. Generally it's better to ask for a scalar value
+(indicated by $). The difference is that C<$foo{&bar}> always behaves
+like a scalar, both when assigning to it and when evaluating its
+argument, while C<@foo{&bar}> behaves like a list when you assign to it,
+and provides a list context to its subscript, which can do weird things
+if you're expecting only one subscript.
On the other hand, if you were actually hoping to treat the hash
element as a list, you need to look into how references work, because
@@ -2705,8 +2735,8 @@
=item %sseek() on unopened file
-(W unopened) You tried to use the seek() or sysseek() function on a filehandle that
-was either never opened or has since been closed.
+(W unopened) You tried to use the seek() or sysseek() function on a
+filehandle that was either never opened or has since been closed.
=item select not implemented
@@ -2718,18 +2748,18 @@
=item semi-panic: attempt to dup freed string
-(S internal) The internal newSVsv() routine was called to duplicate a scalar
-that had previously been marked as free.
+(S internal) The internal newSVsv() routine was called to duplicate a
+scalar that had previously been marked as free.
=item Semicolon seems to be missing
-(W semicolon) A nearby syntax error was probably caused by a missing semicolon,
-or possibly some other missing operator, such as a comma.
+(W semicolon) A nearby syntax error was probably caused by a missing
+semicolon, or possibly some other missing operator, such as a comma.
=item send() on closed socket %s
-(W closed) The socket you're sending to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The socket you're sending to got itself closed sometime before
+now. Check your logic flow.
=item Sequence (? incomplete
@@ -2779,15 +2809,15 @@
=item setegid() not implemented
-(F) You tried to assign to C<$)>, and your operating system doesn't support
-the setegid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$)>, and your operating system doesn't
+support the setegid() system call (or equivalent), or at least Configure
+didn't think so.
=item seteuid() not implemented
-(F) You tried to assign to C<< $> >>, and your operating system doesn't support
-the seteuid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<< $> >>, and your operating system doesn't
+support the seteuid() system call (or equivalent), or at least Configure
+didn't think so.
=item setpgrp can't take arguments
@@ -2796,15 +2826,15 @@
=item setrgid() not implemented
-(F) You tried to assign to C<$(>, and your operating system doesn't support
-the setrgid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$(>, and your operating system doesn't
+support the setrgid() system call (or equivalent), or at least Configure
+didn't think so.
=item setruid() not implemented
-(F) You tried to assign to C<$<>, and your operating system doesn't support
-the setruid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$<>, and your operating system doesn't
+support the setruid() system call (or equivalent), or at least Configure
+didn't think so.
=item Setuid/gid script is writable by world
@@ -2817,12 +2847,13 @@
=item shutdown() on closed socket %s
-(W closed) You tried to do a shutdown on a closed socket. Seems a bit superfluous.
+(W closed) You tried to do a shutdown on a closed socket. Seems a bit
+superfluous.
=item SIG%s handler "%s" not defined
-(W signal) The signal handler named in %SIG doesn't, in fact, exist. Perhaps you
-put it into the wrong package?
+(W signal) The signal handler named in %SIG doesn't, in fact, exist.
+Perhaps you put it into the wrong package?
=item sort is now a reserved word
@@ -2842,14 +2873,15 @@
=item Split loop
-(P) The split was looping infinitely. (Obviously, a split shouldn't iterate
-more times than there are characters of input, which is what happened.)
-See L<perlfunc/split>.
+(P) The split was looping infinitely. (Obviously, a split shouldn't
+iterate more times than there are characters of input, which is what
+happened.) See L<perlfunc/split>.
=item Stat on unopened file <%s>
-(W unopened) You tried to use the stat() function (or an equivalent file test)
-on a filehandle that was either never opened or has since been closed.
+(W unopened) You tried to use the stat() function (or an equivalent file
+test) on a filehandle that was either never opened or has since been
+closed.
=item Statement unlikely to be reached
@@ -2903,11 +2935,11 @@
=item substr outside of string
-(W substr),(F) You tried to reference a substr() that pointed outside of a
-string. That is, the absolute value of the offset was larger than the
-length of the string. See L<perlfunc/substr>. This warning is
-fatal if substr is used in an lvalue context (as the left hand side
-of an assignment or as a subroutine argument for example).
+(W substr),(F) You tried to reference a substr() that pointed outside of
+a string. That is, the absolute value of the offset was larger than the
+length of the string. See L<perlfunc/substr>. This warning is fatal if
+substr is used in an lvalue context (as the left hand side of an
+assignment or as a subroutine argument for example).
=item suidperl is no longer needed since %s
@@ -2955,8 +2987,8 @@
=item syswrite() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your logic flow.
=item Target of goto is too deeply nested
@@ -2965,13 +2997,13 @@
=item tell() on unopened file
-(W unopened) You tried to use the tell() function on a filehandle that was either
-never opened or has since been closed.
+(W unopened) You tried to use the tell() function on a filehandle that
+was either never opened or has since been closed.
=item Test on unopened file <%s>
-(W unopened) You tried to invoke a file test operator on a filehandle that isn't
-open. Check your logic. See also L<perlfunc/-X>.
+(W unopened) You tried to invoke a file test operator on a filehandle
+that isn't open. Check your logic. See also L<perlfunc/-X>.
=item That use of $[ is unsupported
@@ -3011,17 +3043,18 @@
=item 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 F<PERL_ENV_TABLES> (see
-L<perlvms>) so that the environ array isn't the target of the change to
+(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
+F<PERL_ENV_TABLES> (see L<perlvms>) so that the environ array isn't the
+target of the change to
%ENV which produced the warning.
=item times not implemented
-(F) Your version of the C library apparently doesn't do times(). I suspect
-you're not running on Unix.
+(F) Your version of the C library apparently doesn't do times(). I
+suspect you're not running on Unix.
=item Too few args to syscall
@@ -3076,8 +3109,8 @@
=item trailing \ in regexp
-(F) The regular expression ends with an unbackslashed backslash. Backslash
-it. See L<perlre>.
+(F) The regular expression ends with an unbackslashed backslash.
+Backslash it. See L<perlre>.
=item Transliteration pattern not terminated
@@ -3118,8 +3151,8 @@
=item Unbalanced context: %d more PUSHes than POPs
-(W internal) The exit code detected an internal inconsistency in how many execution
-contexts were entered and left.
+(W internal) The exit code detected an internal inconsistency in how many
+execution contexts were entered and left.
=item Unbalanced saves: %d more saves than restores
@@ -3128,13 +3161,13 @@
=item Unbalanced scopes: %d more ENTERs than LEAVEs
-(W internal) The exit code detected an internal inconsistency in how many blocks
-were entered and left.
+(W internal) The exit code detected an internal inconsistency in how many
+blocks were entered and left.
=item Unbalanced tmps: %d more allocs than frees
-(W internal) The exit code detected an internal inconsistency in how many mortal
-scalars were allocated and freed.
+(W internal) The exit code detected an internal inconsistency in how many
+mortal scalars were allocated and freed.
=item Undefined format "%s" called
@@ -3209,14 +3242,15 @@
=item unmatched [] in regexp
(F) The brackets around a character class must match. If you wish to
-include a closing bracket in a character class, backslash it or put it first.
-See L<perlre>.
+include a closing bracket in a character class, backslash it or put it
+first. See L<perlre>.
=item Unquoted string "%s" may clash with future reserved word
-(W reserved) You used a bareword that might someday be claimed as a reserved word.
-It's best to put such a word in quotes, or capitalize it somehow, or insert
-an underbar into it. You might also declare it as a subroutine.
+(W reserved) You used a bareword that might someday be claimed as a
+reserved word. It's best to put such a word in quotes, or capitalize it
+somehow, or insert an underbar into it. You might also declare it as a
+subroutine.
=item Unrecognized character %s
@@ -3226,13 +3260,14 @@
=item Unrecognized escape \\%c passed through
-(W misc) You used a backslash-character combination which is not recognized
-by Perl.
+(W misc) You used a backslash-character combination which is not
+recognized by Perl.
=item Unrecognized signal name "%s"
-(F) You specified a signal name to the kill() function that was not recognized.
-Say C<kill -l> in your shell to see the valid signal names on your system.
+(F) You specified a signal name to the kill() function that was not
+recognized. Say C<kill -l> in your shell to see the valid signal names on
+your system.
=item Unrecognized switch: -%s (-h will show valid options)
@@ -3242,9 +3277,10 @@
=item Unsuccessful %s on filename containing newline
-(W newline) A file operation was attempted on a filename, and that operation
-failed, PROBABLY because the filename contained a newline, PROBABLY
-because you forgot to chop() or chomp() it off. See L<perlfunc/chomp>.
+(W newline) A file operation was attempted on a filename, and that
+operation failed, PROBABLY because the filename contained a newline,
+PROBABLY because you forgot to chop() or chomp() it off. See
+L<perlfunc/chomp>.
=item Unsupported directory function "%s" called
@@ -3254,9 +3290,9 @@
(F) Your version of executable does not support forking.
-Note that under some systems, like OS/2, there may be different flavors of
-Perl executables, some of which may support fork, some not. Try changing
-the name you call Perl by to C<perl_>, C<perl__>, and so on.
+Note that under some systems, like OS/2, there may be different flavors
+of Perl executables, some of which may support fork, some not. Try
+changing the name you call Perl by to C<perl_>, C<perl__>, and so on.
=item Unsupported function %s
@@ -3271,9 +3307,9 @@
=item Unterminated <> operator
(F) The lexer saw a left angle bracket in a place where it was expecting
-a term, so it's looking for the corresponding right angle bracket, and not
-finding it. Chances are you left some needed parentheses out earlier in
-the line, and you really meant a "less than".
+a term, so it's looking for the corresponding right angle bracket, and
+not finding it. Chances are you left some needed parentheses out earlier
+in the line, and you really meant a "less than".
=item Unterminated attribute parameter in attribute list
@@ -3291,15 +3327,15 @@
=item Use of $# is deprecated
-(D deprecated) This was an ill-advised attempt to emulate a poorly defined B<awk> feature.
-Use an explicit printf() or sprintf() instead.
+(D deprecated) This was an ill-advised attempt to emulate a poorly
+defined B<awk> feature. Use an explicit printf() or sprintf() instead.
=item Use of $* is deprecated
-(D deprecated) This variable magically turned on multi-line pattern matching, both for
-you and for any luckless subroutine that you happen to call. You should
-use the new C<//m> and C<//s> modifiers now to do that without the dangerous
-action-at-a-distance effects of C<$*>.
+(D deprecated) This variable magically turned on multi-line pattern
+matching, both for you and for any luckless subroutine that you happen to
+call. You should use the new C<//m> and C<//s> modifiers now to do that
+without the dangerous action-at-a-distance effects of C<$*>.
=item Use of %s in printf format not supported
@@ -3308,8 +3344,8 @@
=item Use of bare << to mean <<"" is deprecated
-(D deprecated) You are now encouraged to use the explicitly quoted form if you
-wish to use an empty line as the terminator of the here-document.
+(D deprecated) You are now encouraged to use the explicitly quoted form
+if you wish to use an empty line as the terminator of the here-document.
=item Use of implicit split to @_ is deprecated
@@ -3341,24 +3377,32 @@
=item Use of reserved word "%s" is deprecated
-(D deprecated) The indicated bareword is a reserved word. Future versions of perl
-may use it as a keyword, so you're better off either explicitly quoting
-the word in a manner appropriate for its context of use, or using a
-different name altogether. The warning can be suppressed for subroutine
-names by either adding a C<&> prefix, or using a package qualifier,
-e.g. C<&our()>, or C<Foo::our()>.
+(D deprecated) The indicated bareword is a reserved word. Future
+versions of perl may use it as a keyword, so you're better off either
+explicitly quoting the word in a manner appropriate for its context of
+use, or using a different name altogether. The warning can be 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 %s is deprecated
-(D deprecated) The construct indicated is no longer recommended for use, generally
-because there's a better way to do it, and also because the old way has
-bad side effects.
+(D deprecated) The construct indicated is no longer recommended for use,
+generally because there's a better way to do it, and also because the old
+way has bad side effects.
=item Use of uninitialized value%s
-(W uninitialized) An undefined value was used as if it were already defined. It was
-interpreted as a "" or a 0, but maybe it was a mistake. To suppress this
-warning assign a defined value to your variables.
+(W uninitialized) An undefined value was used as if it were already
+defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
+To suppress this warning assign a defined value to your variables.
+
+To help you figure out what was undefined, perl tells you what operation
+you used an undefined value in. Note, however, that perl optimizes your
+program and the operation displayed in the warning may not necessarily
+appear literally in your program. For example, C<"that $foo"> is usually
+optimized into C<"that " . $foo>, and the warning will refer to the
+C<concatenation (.)> operator, even though there is no C<.> in your
+program.
=item Useless use of "re" pragma
@@ -3366,12 +3410,12 @@
=item Useless use of %s in void context
-(W void) You did something without a side effect in a context that does nothing
-with the return value, such as a statement that doesn't return a value
-from a block, or the left side of a scalar comma operator. Very often
-this points not to stupidity on your part, but a failure of Perl to parse
-your program the way you thought it would. For example, you'd get this
-if you mixed up your C precedence with Python precedence and said
+(W void) You did something without a side effect in a context that does
+nothing with the return value, such as a statement that doesn't return a
+value from a block, or the left side of a scalar comma operator. Very
+often this points not to stupidity on your part, but a failure of Perl to
+parse your program the way you thought it would. For example, you'd get
+this if you mixed up your C precedence with Python precedence and said
$one, $two = 1, 2;
@@ -3402,18 +3446,19 @@
=item Value of %s can be "0"; test with defined()
-(W misc) In a conditional expression, you used <HANDLE>, <*> (glob), C<each()>,
-or C<readdir()> as a boolean value. Each of these constructs can return a
-value of "0"; that would make the conditional expression false, which is
-probably not what you intended. When using these constructs in conditional
-expressions, test their values with the C<defined> operator.
+(W misc) In a conditional expression, you used <HANDLE>, <*> (glob),
+C<each()>, or C<readdir()> as a boolean value. Each of these constructs
+can return a value of "0"; that would make the conditional expression
+false, which is probably not what you intended. When using these
+constructs in conditional expressions, test their values with the
+C<defined> operator.
=item 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.
+(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.
=item Variable "%s" is not imported%s
@@ -3425,10 +3470,10 @@
=item Variable "%s" may be unavailable
-(W closure) An inner (nested) I<anonymous> subroutine is inside a I<named>
-subroutine, and outside that is another subroutine; and the anonymous
-(innermost) subroutine is referencing a lexical variable defined in
-the outermost subroutine. For example:
+(W closure) An inner (nested) I<anonymous> subroutine is inside a
+I<named> subroutine, and outside that is another subroutine; and the
+anonymous (innermost) subroutine is referencing a lexical variable
+defined in the outermost subroutine. For example:
sub outermost { my $a; sub middle { sub { $a } } }
@@ -3512,10 +3557,10 @@
=item Warning: Use of "%s" without parentheses is ambiguous
-(S ambiguous) You wrote a unary operator followed by something that looks like a
-binary operator that could also have been interpreted as a term or
-unary operator. For instance, if you know that the rand function
-has a default argument of 1.0, and you write
+(S ambiguous) You wrote a unary operator followed by something that looks
+like a binary operator that could also have been interpreted as a term or
+unary operator. For instance, if you know that the rand function has a
+default argument of 1.0, and you write
rand + 5;
@@ -3531,8 +3576,8 @@
=item write() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your logic flow.
=item X outside of string
@@ -3546,16 +3591,18 @@
=item Xsub "%s" called in sort
-(F) The use of an external subroutine as a sort comparison is not yet supported.
+(F) The use of an external subroutine as a sort comparison is not yet
+supported.
=item Xsub called in sort
-(F) The use of an external subroutine as a sort comparison is not yet supported.
+(F) The use of an external subroutine as a sort comparison is not yet
+supported.
=item You can't use C<-l> on a filehandle
-(F) A filehandle represents an opened file, and when you opened the file it
-already went past any symlink you are presumably trying to look for.
+(F) A filehandle represents an opened file, and when you opened the file
+it already went past any symlink you are presumably trying to look for.
Use a filename instead.
=item YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!
@@ -3567,10 +3614,11 @@
=item You need to quote "%s"
-(W syntax) You assigned a bareword as a signal handler name. Unfortunately, you
-already have a subroutine of that name declared, which means that Perl 5
-will try to call the subroutine when the assignment is executed, which is
-probably not what you want. (If it IS what you want, put an & in front.)
+(W syntax) You assigned a bareword as a signal handler name.
+Unfortunately, you already have a subroutine of that name declared, which
+means that Perl 5 will try to call the subroutine when the assignment is
+executed, which is probably not what you want. (If it IS what you want,
+put an & in front.)
=item %cetsockopt() on closed socket %s
@@ -3580,25 +3628,25 @@
=item \1 better written as $1
-(W syntax) Outside of patterns, backreferences live on as variables. The use
-of backslashes is grandfathered on the right-hand side of a
+(W syntax) Outside of patterns, backreferences live on as variables. The
+use of backslashes is grandfathered on the right-hand side of a
substitution, but stylistically it's better to use the variable form
-because other Perl programmers will expect it, and it works better
-if there are more than 9 backreferences.
+because other Perl programmers will expect it, and it works better if
+there are more than 9 backreferences.
=item '|' and '<' may not both be specified on command line
-(F) An error peculiar to VMS. Perl does its own command line redirection, and
-found that STDIN was a pipe, and that you also tried to redirect STDIN using
-'<'. Only one STDIN stream to a customer, please.
+(F) An error peculiar to VMS. Perl does its own command line
+redirection, and found that STDIN was a pipe, and that you also tried to
+redirect STDIN using '<'. Only one STDIN stream to a customer, please.
=item '|' and '>' may not both be specified on command line
-(F) An error peculiar to VMS. 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. You need to choose one or the other, though nothing's stopping you
-from piping into a program or Perl script which 'splits' output into two
-streams, such as
+(F) An error peculiar to VMS. 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. You need to choose one or the other,
+though nothing's stopping you from piping into a program or Perl script
+which 'splits' output into two streams, such as
open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!";
while (<STDIN>) {
--
It's is not, it isn't ain't, and it's it's, not its, if you mean it
is. If you don't, it's its. Then too, it's hers. It isn't her's. It
isn't our's either. It's ours, and likewise yours and theirs.
-- Oxford University Press, Edpress News