$self->{foo} = $self->bar ? 10 : $self->rat * 10;
one instead writes
$.foo = .bar ? 10 : .rat * 10;
Although IIRC, that should be ?? and :: for the ternary conditional operator. Such considerations aside, the succinctness of the dot approach far outweighs the arrow approach (which, it should be remembered, was itself a vast improvement over the apostrophe operator). Your surely agree with me when I say
$->foo = ->bar ? 10 : ->rat * 10;
looks... odd. That's reason enough for me to go with the dot approach.
The underscore operator
I do think that requiring whitespace around the underscore operator is a bit of a design wart caused by exhaustion of the ASCII character set. Which means that there's not a lot you can do about it.
In a Unicode environment, I imagine it would be preferable to define a specific operator that doesn't require whitespace disambiguation. I think a small ring character like on a Swedish A would be pretty cool. But if you're not Unicode pure then I guess you're out of luck.
--g r i n d e r
|