> Why am I not getting an error message for line 10?

my is declaring $one for the rest of the scope.

say 'one' until my $one = 1;

Scope is the file because post-fix constructs have no surrounding block.

> Global symbol "$two" requires explicit package name at ./strict.pl line 16.

The scope here is limited to the loop and won't reach the say

until (my $two = 2) { say 'two'; } say $two;

> Commenting out line 16 gives me:

Then you have no compile time fatals from strict anymore and the script runs

> Use of uninitialized value $one in say at ./strict.pl line 10.

that's a run-time warning ...

... I'm a bit puzzled and need to run the code, to see why my $one is not initialized

update

The condition after until should be executed at least once.

I can only guess that some kind of weird optimization is happening there.

Please note that using my in conditional code is considered bad practice and might not be well tested.

You might have found a bug here.

update

My guess is that scope handling is wrong here.

At runtime a variable should be reset to undef at the end of it's loop-scope.

Of course this is in conflict with Perl's compile-time behavior of not seeing a scope here.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice


In reply to Re: Missing error under strict by LanX
in thread Missing error under strict by Pascal666

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.