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.) Larry