specify type of bracket in "Unmatched bracket" diagnostic;
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index c303c00..7e5ab16 100644 (file)
@@ -51,6 +51,11 @@ 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
+
+(F) The '!' is allowed in pack() and unpack() only after certain types.
+See L<perlfunc/pack>.
+
 =item % may only be used in unpack
 
 (F) You can't pack a string by supplying a checksum, because the
@@ -394,7 +399,7 @@ Perl yourself.
 =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 braces or to the left of the "=>" symbol.
+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
@@ -1373,16 +1378,25 @@ logic, or you need to put a conditional in to guard against meaningless input.
 (F) You tried to divide a number by 0 to get the remainder.  Most numbers
 don't take to this kindly.
 
-=item Illegal octal digit
+=item Illegal binary digit %s
+
+(F) You used a digit other than 0 and 1 in a binary number.
+
+=item Illegal octal digit %s
 
 (F) You used an 8 or 9 in a octal number.
 
-=item Illegal octal digit ignored
+=item Illegal binary digit %s ignored
+
+(W) 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) 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 hex digit ignored
+=item Illegal hex digit %s ignored
 
 (W) You may have tried to use a character other than 0 - 9 or A - F in a
 hexadecimal number.  Interpretation of the hexadecimal number stopped
@@ -1427,17 +1441,16 @@ C<$ENV{ENV}> or C<$ENV{BASH_ENV}> are derived from data supplied (or
 potentially supplied) by the user.  The script must set the path to a
 known value, using trustworthy data.  See L<perlsec>.
 
-=item Integer overflow in hex number
+=item Integer overflow in %s number
 
-(S) The literal hex number you have specified is too big for your
-architecture. On a 32-bit architecture the largest hex literal is
-0xFFFFFFFF.
-
-=item Integer overflow in octal number
-
-(S) The literal octal number you have specified is too big for your
-architecture. On a 32-bit architecture the largest octal literal is
-037777777777.
+(S) The literal hex, octal or binary number you have specified is
+too big for your architecture. On a 32-bit architecture the largest
+literal hex, octal or binary number representable without overflow
+is 0xFFFFFFFF, 037777777777, or 0b11111111111111111111111111111111
+respectively.  Note that Perl transparently promotes decimal literals
+to a floating point representation internally--subject to loss of
+precision errors in subsequent operations--so this limit usually
+doesn't apply to decimal literals.
 
 =item Internal inconsistency in tracking vforks
 
@@ -1566,11 +1579,11 @@ construction, but the command was missing or blank.
 (S) This is an educated guess made in conjunction with the message "%s
 found where operator expected".  Often the missing operator is a comma.
 
-=item Missing right bracket
+=item Missing right curly or square bracket
 
-(F) The lexer counted more opening curly brackets (braces) than closing ones.
-As a general rule, you'll find it's missing near the place you were last
-editing.
+(F) The lexer counted more opening curly or square brackets than
+closing ones.  As a general rule, you'll find it's missing near the place
+you were last editing.
 
 =item Modification of a read-only value attempted
 
@@ -2323,11 +2336,6 @@ was either never opened or has since been closed.
 
 (F) This machine doesn't implement the select() system call.
 
-=item select() on unopened file
-
-(W) You tried to use the select() function on a filehandle that
-was either never opened or has since been closed.
-
 =item sem%s not implemented
 
 (F) You don't have System V semaphore IPC on your system.
@@ -2380,12 +2388,14 @@ from the user it isn't running under, and isn't in a location where the CGI
 server can't find it, basically, more or less.  Please see the following
 for more information:
 
-       http://www.perl.com/perl/faq/idiots-guide.html
-       http://www.perl.com/perl/faq/perl-cgi-faq.html
+       http://www.perl.com/CPAN/doc/FAQs/cgi/idiots-guide.html
+       http://www.perl.com/CPAN/doc/FAQs/cgi/perl-cgi-faq.html
        ftp://rtfm.mit.edu/pub/usenet/news.answers/www/cgi-faq
        http://hoohoo.ncsa.uiuc.edu/cgi/interface.html
        http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html
 
+You should also look at L<perlfaq9>.
+
 =item setegid() not implemented
 
 (F) You tried to assign to C<$)>, and your operating system doesn't support
@@ -2771,12 +2781,12 @@ representative, who probably put it there in the first place.
 expressions.  If you're a vi user, the % key is valuable for finding
 the matching parenthesis.  See L<perlre>.
 
-=item Unmatched right bracket
+=item Unmatched right %s bracket
 
-(F) The lexer counted more closing curly brackets (braces) than opening
-ones, so you're probably missing an opening bracket.  As a general
-rule, you'll find the missing one (so to speak) near the place you were
-last editing.
+(F) The lexer counted more closing curly or square brackets than
+opening ones, so you're probably missing a matching opening bracket.
+As a general rule, you'll find the missing one (so to speak) near the
+place you were last editing.
 
 =item unmatched [] in regexp