I'll take this a step further too and mention the diagnostics pragma (perldoc diagnostics). I don't think it is practical for production use, but can be helpful for new Perl folks when learning and finding that their code doesn't seem to work with -w all of a sudden :) The diagnostics pragma will give verbose warning messages (more verbose than the normal -w warnings). Here is an example:
#!/usr/bin/perl -w
print "Hello;
When run, this will produce:
Can't find string terminator '"' anywhere before EOF at ./test.pl line 3.
Ok, this is an easy one to see the error :) I am using it for examples sake! Anyways, now, let's change the script to:
#!/usr/bin/perl -w
use diagnostics;
print "Hello;
Now, this is what you would see:
Can't find string terminator '"' anywhere before EOF at ./test.pl line 4 (#1)
(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.);
If you're getting this error from a here-document, you may have
included unseen whitespace before or after your closing tag. A good
programmer's editor will have a way to help you find
these characters.
Uncaught exception from user code:
Can't find string terminator '"' anywhere before EOF at ./test.pl line 4.
Just an aside to hopefully help some folks learn |