This is close, but does not actually give the same benefits

You said the problem you're solving is a need to avoid barewords. (You didn't justify that, but fine, I can imagine a reason or two.) What I provided solves the problem. If your solution provides different benefits, does that mean it doesn't solve the stated problem?

Ok, let's assumes you meant it provides additional benefits. We'll come back to that.

allow the *foo{IO} slot to be removed from GV

No, it doesn't. You can't break every XS module that interacts with Perl file handles.

Lexical bareword filehandles allow at least the simple cases to continue to work

No it doesn't. It would cause the following to fail:

sub f { print FH ...; } open FH, '>', ...; f();

Lexical bareword filehandles move a bit of complexity into the parser

Except the complexity isn't moved. Your solution adds complexity. Your proposal invents a whole new type system based on heuristics that's nothing like anything in Perl already, when you could simply localize the globs implicitly. This doesn't just add complexity in the parser; it really complicates the language. This affects programmers, not just the people working on perl itself, so this is far worse.

improving perl and its I/O handling.

You said the goal was to avoid barewords. You didn't identify any "problem with I/O handling", whatever that means.

Some breakage is to be expected across major versions, but the goal is to maximize the amount of old code that continues to work, while still improving perl and its I/O handling.

Everything I said assumed that the goal as worthwhile. None of the my objections have been about the goal, which would necessarily cause breakage; that's a separate discussion. That means converting open(FOO, ...) to open(local *FOO, ...) would cause that same breakage. But it's a far far better solution to the stated goal.

Earlier, I said I'll presume you meant your solution provides additional benefits over the one I proposed. Well, if that's the case, I'm still waiting to see what they are.


Update: This was was posted without my knowledge while I was still composing. I ended up with two posts which I've merged.


In reply to Re^5: On Backwards Compatibility and Bareword Filehandles by ikegami
in thread On Backwards Compatibility and Bareword Filehandles by jcb

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.