I was just reading about hypothetical variables in Apocalypse 5.

I told a friend why Perl 6 Rules, and he wasn't impressed. It's easy enough to do something like that in C++, and usually we don't bother with anything that elaborate: just assign to temporaries and copy it home to "commit".

So that got me thinking... why limit hypothetical scope to regex?

Have something that works like temp (nee local) that resets the old value only if the block fails, but keeps the current value if the block succeeds.

Also, I don't like something Larry said:

if the variable is not pre-declared, ... the let also serves to declare the variable as lexically scoped to the rest of the regex
Hmm, isn't this going to cause the same surprises as auto-declaring in local (not global) scope that he doesn't like in an earlier installment?

Specifically, declaring a variable in an outer scope that happens to have the same name as my regex-local variable will suddenly change the behavior of the program, with no indication where in the code the meaning changed.

We need, instead, a proper way to declare variables within the regex if that's what's wanted.

—John


In reply to hypothetical variables by John M. Dlugosz

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.