Array found where operator expected at noname.pl line 6, at end of lin
+e
(Missing operator before ?)
syntax error at noname.pl line 6, near "$b @char_count"
Execution of noname.pl aborted due to compilation errors.
then read the documentation.
Note too that use diagnostics; can help understand what is going on. Adding diagnostics gives the following message:
Array found where operator expected at noname.pl line 7, at end of lin
+e (#1)
(S syntax) The Perl lexer knows whether to expect a term or an ope
+rator.
If it sees what it knows to be a term when it was expecting to see
+ an
operator, it gives you this warning. Usually it indicates that an
operator or delimiter was omitted, such as a semicolon.
(Missing operator before ?)
syntax error at noname.pl line 7, near "$b @char_count"
Execution of noname.pl aborted due to compilation errors (#2)
(F) Probably means you had a syntax error. Common reasons include
+:
A keyword is misspelled.
A semicolon is missing.
A comma is missing.
An opening or closing parenthesis is missing.
An opening or closing brace is missing.
A closing quote is missing.
Often there will be another error message associated with the synt
+ax
error giving more information. (Sometimes it helps to turn on -w.
+)
The error message itself often tells you where it was in the line
+when
it decided to give up. Sometimes the actual error is several toke
+ns
before this, because Perl is good at understanding random input.
Occasionally the line number may be misleading, and once in a blue
+ moon
the only way to figure out what's triggering the error is to call
perl -c repeatedly, chopping away half the program each time to se
+e
if the error went away. Sort of the cybernetic version of S<20
questions>.
Uncaught exception from user code:
syntax error at noname.pl line 7, near "$b @char_count"
Execution of noname.pl aborted due to compilation errors.
at noname.pl line 7
Which actually has the hint you needed: "An opening or closing brace is missing.".
DWIM is Perl's answer to Gödel
|