From: Jay <[EMAIL PROTECTED]>
> Turn on use strict for starters, and use warnings.  you won't want to
> run with them, if you have things that you know will cause errors, but
> they'll give you some other input.  Keep a special eye out for "Bare
> word found where $x expected" errors.  The thing to remember is that
> perl has no way of knowing what's really missing.  It just knows what
> its expects to find based on what it's already seen.  You can change
> what it expects with coding errors.  My best guess si that you're
> actually missing a semicolon somewhere.  Consider the following:
> 
> if (x) {
>     eval { 
>         print "\n" ; 
>     }
> }
> 
> under some combinations of warning, diagnotics, etc., Perl will carp
> about a missing right brace because it never finds the end of the if
> block before EOF.  The reason it never finds the end of the if block
> is that eval needs a semicolon, but the compiler doesn't know why it
> doesn't find the end of the block, it just knows that it doesn't find
> the end of that block before EOF.

You sure? Could you show us a complete example ? And tell us which 
perl did you get this behaviour from?

Tried all combinations of
        use strict;
        use warnings;
        use diagnostics;
and never received a word about a missing curly.

Semicolon is optional before the closing curly brace and it doesn't 
matter what the last command in the block is.

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to