On Fri, Apr 07, 2006 at 10:07:55PM +0100, Nicholas Clark wrote:
: On Fri, Apr 07, 2006 at 01:11:15PM -0700, Larry Wall wrote:
: > On Fri, Apr 07, 2006 at 01:04:38PM -0700, [EMAIL PROTECTED] wrote:
: > : +The long dot form of the C<...> postfix is C<0. ...> rather than
: > : +C<0. ....> because the long dot eats the first dot after the whitespace.
: > : +It does not follow that you can write C<0....> because that would
: > : +take the first three dots under the longest token rule. (The long dot
: > : +does not count as a longer token because the longest-token rule only
: > : +applies to the fixed prefix of any rule with variable components.)
: > Yes, before anyone else points it out to me, that still doesn't quite
: > make sense, insofar as the long-dot rule has to take precedence over
: What's not making sense to me is why it's not
: The long dot form of the C<...> postfix is C<0. ....> rather than
: C<0. ...> because the long dot eats the first dot after the whitespace.
: (ie swapped the 3 and 4 dots), given that the long dot eats the first dot,
: and 3 eat 1 leaves 2, whereas 4 eat 1 leaves 3.
It can certainly be argued either way. It kind of depends on what
you think about the first dot of '$x...' with respect to the next
two dots, and whether the long dot rule ends with \. or <before \.>.
I tend to think of the "long dot" as a substitute for the first dot
in any dotted short form, not as a prefix. To me it seems easier
to teach as a "long dot" (which is dotty on both ends) than as a dot
extender (which is dotty at the front and spacey at the back, but just
happens to require that the next thing be a dot.)