Scott Walters writes:
> Juerd,
> 
> You'd do well to not remove the conclusion of my post when the conclusion
> is that the I strongly support you. Otherwise, your reply, read out of
> context, sounds like you're fending off an attacker ;)
> 
> People would do well to seperate the merits of the idea from the merits of the 
> suggested implementation. I'd like to see people say "I like the idea but
> the implementation isn't workable" or alternatively "The ` operator isn't
> that important but I'm not sure the idea merits the change". I hate one
> negitive with the other implied. 
> 
> If I understand correctly, Perl looks for either a term or operator
> at any given moment. %hash and `rf -rm *` are both terms, hence
> 
>   %hash `rf -rm *`
> 
> makes no sense. Aside from playing hell with editors quoting, something
> proposed to be solved by making the real grammar of Perl available in
> a modular way for inclusion in editors, is there any reason that they
> couldn't coexist? 

No there's not.  We wouldn't even have to fall back to whitespace.  The
distinction is the same as that between / for division and / for
starting a pattern.  Interestingly, neither ' nor " has any meaning in
operator position, either.

That said, I have mixed feelings about the idea.  I am thoroughly
convinced that ` can leave it's current job.  Removing qx// would be
going a leap too far.  

I think %hash`key is about as pretty as a perl 5 regular expression.
Plus, we already have two hash dereferencing syntaxen.  It might be nice
just to let ` go, since we constantly find new things that would like to
be represented by operators, while we are out of operators.  After all,
we're using two latin-1 operators in the core.

I agree that balancing brackets are annoying where they don't need to
be, but I think you're focusing on the wrong area.  Keep in mind that
you're proposing a syntax for single atoms, so C<word> is replaced only
by C<{word}> or C<ÂwordÂ>, not C<{word ...}> or something.  Those are
the brackets that are easy to see.  The hard ones are the ones that
start in column 8 and end in column 65.

I'm arguing for now that ` be removed as a synonym for qx//, and not
added as anything else until we find a good use for it. 

And for your viewing enjoyment:

    macro infix:` ($hash, $key)
        is parsed(/ $?key := (\$? \w+) /)
        is tighter(&infix:.)
    {
        if $key ~~ /\$/ {
            "($hash.text()).{$key}";
        }
        else {
            "($hash.text()).Â$keyÂ";
        }
    }

Luke

Reply via email to