At 4:26 PM -0700 9/15/06, Larry Wall wrote:
On Fri, Sep 15, 2006 at 03:27:40PM -0700, Darren Duncan wrote:
: As I recall, we're allowed to put absolutely any characters we want
: in an identifier if it is a delimited identifier rather than a
: bareword identifier.

I have no clue what you mean by 'delimited identifier'.  Are you referring
to the section of S02/Names that allows symbols like the following?

    $::{'[EMAIL PROTECTED]@'}
    ::{'[EMAIL PROTECTED]@'}
<snip>
But in any case I would call these names or symbols, not identifiers.
Most people reserve "identifier" to mean a particular sort of symbol
that looks roughly alphanumeric to the lexer.

Yes, a 'symbol' is what I was referring to when I said 'identifier', and I typically include the sigil as part of that definition of an identifier (blame the terminology used by the SQL standard plus some other languages, which I am accustomed to); the single-quotes were delimiters in this case, so what is between them was a delimited identifier.

I will endeavour to call such things symbols rather than identifiers in future discussion, so there isn't any confusion.

: That said, it isn't yet clear to me what the general rules for
: delimited identifiers are as contrasted with literal strings, and in
: particular, whether any leading sigil is supposed to go inside or
: outside of the delimiters.

As the above illustrates, you can simply use literal strings as
the subscript, so there is no difference.  And the sigil may go
either place.  Which means it's not easy to have a package name
starting with a sigil.  I don't consider this a big restriction.
Alternately we could recognize

    ::{'::[EMAIL PROTECTED]@'}

in which case it's difficult to have a package name starting with '::'.
That's probably a feature...

Thank you for clarifying that. In particular that the sigil could go either inside or outside of the string-delimiter-quotes.

-- Darren Duncan

Reply via email to