in reply to Re^3: Syntax Highlighting Editors Beware
in thread Syntax Highlighting Editors Beware

To disambiguate infix and postfix operators. The postix cannot have space before. If both exist, the infix must have space before. If there is no postfix operator of that name, then you can omit the space.

That one concept alone allows the language to be much richer, without introducing more symbols and keywords.

For example, .foo means call method $_.foo, and you don't call methods without using a dot at all as in C++. But it means that $xxx.foo can't have a space before the dot. You can also say @list».+foo to call all methods named foo on each item in the list. The » modifies the postfix "method call" dot, but is also used to modify infix operators.

If you wrote your own infix:<++> operator, you could distinguish between $x++ and $x ++ ... always and without unlimited backtracking.

Now the set of operators borrowed from C++ don't have that particular ambiguity, because it can't handle it. Thus, you're not used to having an infix ++, etc. But a lot of syntax in Perl 6 is really done with operators, including function call, dot, and of course modifiers that can go on any kind of operator.

—John