On Thu, Apr 06, 2006 at 01:58:55PM -0400, Matt Fowles wrote: : All~ : : I just noticed something claiming that C<$a. foo()> is actually : C<$a.foo()> (a method call on C<$a>) and that C<$a .foo()> is actually : C<$a $_.foo()> (likely a syntax error). : : When did this change? Why did this change?
It changed at the last hackathon, but is still being debated, mostly on #perl6. The current S02 "early dot" rule is likely being abandoned, but we don't know for what yet. The reason is that term/operator lexer state is interacting badly with inconsistent retroactive whitespace cancellation. : Also, I liked it better when C<$a .foo()> was a method call on C<$a>. Sure, that one might be obvious, but quick, tell me what these mean: say .bar say .() say .1 when .bar when .() when .1 foo .bar foo .() foo .1 .foo .bar .foo .() .foo .1 I'd rather have a rule you don't have to think about so hard. To me that implies something simple that let's you put whitespace *into* a postfix without violating the "postfixes don't take preceding whitespace" rule. Larry