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

Exactly. So adding the dash into the class of characters allowed in identifiers would not work since the digits are in the class as well. So the $one-5 would definitely be colored wrong.

On the other hand ... I think it's a bad change. In Perl 5 "$three = $one-two;" means "subtract the return value of two() from the value in $one and assign to $three". I bet everyone comming from Perl 5 will expect exactly that in Perl6. And I don't know of any language that would allow dashes in identifiers so I bet others will expect something like that as well. And I do not see any reason whatsoever to allow the dashes in Perl.

Replies are listed 'Best First'.
Re^5: Syntax Highlighting Editors Beware
by Porculus (Hermit) on Aug 10, 2008 at 13:35 UTC

    Hopefully people coming from Perl 5 will be using syntax-highlighting editors, so they will be able to see at a glance what is and isn't an identifier. :)

    As for languages that allow dashes in identifiers, what about LISP, Scheme, etc? And languages like ML allow single quotes in identifiers (without even the requirement that they be followed by a letter).

      It's ages since I've seen LISP for the last time, in any case LISP is (syntacticaly) different enough than anything else (I consider Scheme a dialect of LISP) that people would not expect the same (or even just similar) rules for identifiers in LISP and in a syntacticaly rich langauge with loads of infix operators. As far as ML is considered ... I thought it only allows ' at the start of type variables in things like map:: 'a -> 'b -> ['a] -> ['b], but again it's years since I've seen it for the last time. Besides the singlequote is not as dangrous by far. Especially since it can be used in identifiers in Perl5 as well. Even though it has a special meaning there.

Re^5: Syntax Highlighting Editors Beware
by John M. Dlugosz (Monsignor) on Aug 11, 2008 at 03:14 UTC
    So the rule for recognizing identifiers needs to be changed, not just the class of certain characters.

    I don't know what the motivation was. Contrast with my own proposal concerning identifier names, which is to allow the ® character but only for use by the implementation, to make names that don't clash with the user's program. It's not used for anything else, so doesn't not hurt the parser. Whether implementations do that or not, it's great for documenting the semantics.

    —John