G'day techgrrl,

Welcome to the monastery.

Perl is reading up to the statement terminator (semicolon) on line 92 before deciding that it's found a disallowed bareword. The fact that line 92 also contains KNOWN_HOSTS is something of a red herring. Consider:

$ perl -Mstrict -E ' while (KNOWN_HOSTS) { say "Hello"; last; } close KNOWN_HOSTS; ' Bareword "KNOWN_HOSTS" not allowed while "strict subs" in use at -e li +ne 6. Execution of -e aborted due to compilation errors.

versus

$ perl -Mstrict -E ' while (KNOWN_HOSTS) { say "Hello"; last; } say "Bye"; ' Bareword "KNOWN_HOSTS" not allowed while "strict subs" in use at -e li +ne 6. Execution of -e aborted due to compilation errors.

Where code extends over multiple lines, Perl will typically report an error at the end of the multi-line code. You need to bear this in mind when debugging - you can have instances where you need to backtrack many lines to find the line where the actual problem has occurred.

If you're wondering why Perl didn't see the closing brace as the end of the statement, consider:

$ perl -Mstrict -E ' while (KNOWN_HOSTS) { say "Hello"; last; } continue { 1; } ' Bareword "KNOWN_HOSTS" not allowed while "strict subs" in use at -e li +ne 8. Execution of -e aborted due to compilation errors.

Aside: where you used perl -MO=Deparse -p ... above, I'm wondering if you meant perl -MO=Deparse,-p ..., i.e. s/ -p/,-p/.

-- Ken


In reply to Re: Why is the error thrown from close(FH) when the error is the missing <> on while(FH)? by kcott
in thread Why is the error thrown from close(FH) when the error is the missing <> on while(FH)? by techgrrl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.