First of all, Larry, do you have *any* idea how difficult you're making my life? :^) This stuff is damn hard to implement--I'm at 450 lines and counting, and I haven't even started the semantic analysis stuff, let alone *tested* anything. At least I have Filter::Simple's FILTER_ONLY and P::RD to help me--without them, I'd be lost. Thanks, Damian! (Perl 6 regexes map pretty well onto P::RD, but then I guess I should consider the source. :^) )
Just wait till you see P::RD's successor: Perl6::Rules ;-)
Anyway, a couple questions as I rework and extend Perl6::Parameters:
-A6 mentions that unprototyped subroutines get their arguments in @_. It also says that methods get their invocant in $_. In an unprototyped method, is the invocant in $_, @_[0], both, or neither?
The invocant is bound to both.
-What exactly does caller's $where parameter do? Does it specify a starting point for the search?
No, it specifies what kind of things to look at:
caller Block; # what block was this block called from? caller Sub; # what subroutine was this called from? caller &foo; # what &foo invocation was this called from? caller Method|Multi # what (multi)method was this called from?
On reflection, maybe $where isn't the ideal name. Maybe $type, or $kind would be better?
Damian