A12 mentions that C<$foo.bar> should return undef if C<$foo> is undef.
While I like the idea a lot, I don't think it should happen without
distinction. In fact, that's what I would most expect C<.?> to do, not
"call a method if there is one," though that seems useful, too.
I'm just shooting in the dark here, but perhaps C<?.> should play that
role. That way you have:
$foo.?bar # return undef if "bar" is undef... in a manner of speaking
$foo?.bar # return undef if $foo is undef
$foo?.?bar # return undef if either is (?)
Either that or C<.?> could double as both roles, considering C<undef>
an object with no methods.
And I can't figure out for the life of me why you'd ever want to use
C<.+>...
Luke