Aaron Sherman skribis 2004-04-16 9:52 (-0400):
> 3. You proposed (late in the conversation) that both could co-exist, and
> while that's true from a compiler point of view, it also leads to:
> `stuff``stuff`stuff
Huh? No. That is a syntax error.
> $a`a=$a`b~`a` # Try to tell your editor how to highlight that!
Try to tell your editor how to highlight:
print "$foo{ / (\d+) { $1 eq "10" or $1 ~~ /5/ and fail } / ?? $1 : "" }";
Better hurry, because it (or something close to it) will soon be valid
syntax.
Also, try using sane spacing and then having confusing syntax.
> `$a`b`c` # May or may not give an error, but shocking either way
Syntax error.
> One of the things that I absolutely despise about auto-quoting is that I
> keep running into the second most popular reason for code ugliness:
>
> $x`y = 1;
$x{y} = 1;
> $x`z = 2;
$x{z} = 2;
> $x{"a b"} = 3; # Ooops, can't use ` for that one
$x{"a b"} = 3; # Oops, can't use unquoted string for that one.
In this case, you should probably have used {} for each of the options.
Most hashes are there mainly to keep a bunch of variables organized, and
let me show you something else:
$y = 1;
$z = 2;
${"a b"} = 3; # Oops? No!
There is no oops.
` is what you use when you know every key will be a \w+ one, or at least
most will be. Or what you use if one of the keys is \w+ and you do not
care about mixing syntaxes.
> Now, mind you: if you WANT to add this to Perl 6, there is nothing
> stopping you from writing your own syntax module for it. Go to town, and
> I won't try to stop you!
Keep repeating it and it will become more true.
I know that trick too and will also repeat one message:
I'm not asking if this is possible. I know it is. I'm suggesting we put
it in the core.
For reasons to want it in the core, see Scott's summary.
I very probably will have and will use this syntax. I'm not talking
about me. I suggest this feature because I think it's good for Perl and
the people who use it.
Except for the shocking number of closed-minded people on this list.
Fortunately, they can still use {} whenever they want.
> > I think I have presented two cases. The removal of `` and the
> > introduction of %hash`key. Either can be implemented without breaking
> > the other, though I obviously think both letting `` go and introducing
> > the infix ` is better.
> And others disagree. Why can't we leave it at that, and if the consensus
> goes toward implementation of your idea, more the better.
Most of those who disagree so far do that they either don't understand
that `` does not have to go, or because they find the ` "ugly".
Fortunately, there are also people who absolutely love the proposed
%foo`bar.
Juerd