I think the original (or the "latest original") reason for breaking .meth from meaning $_.meth is that $_ is transitory and there was no way back to the nameless invocant. In the absense of having a way back, I and others strongly advocated breaking the link. I think we hated to do it.
Now if we can introduce another way back so that we can always get to the invocant if we want to, then I'd say lets leave .meth always working on $_ . It does have beauty and simplicity. So then, to get back to the invocant... I can't say that I liked many of the proposals. The one that seemed to have merit though was $^. I'd propose the following. meth foo { $_.meth; # defaults to the invocant .meth; # operates on $_ which defaults to the invocant $^.meth; # is the invocant $^1.meth; # is the first invocant $^2.meth; # is the second invocant for 1 .. 10 { $_.say; topic of for .say; # use $_ $^.say; # stringifies invocant 1 $^1.say; # stringifies invocant 1 $^2.say # stringifies invocant 2 } } The rules then are simple. .meth always operates on $_. $_ is always the current topic. $_ defaults to the invocant of the method. $^1 refers to the first invocant. $^ is an alias for $^1. $^n refers to the nth invocant. Nice and simple. No conflict with existing naming conventions. Paul