On Tue, 20 Apr 2004, Luke Palmer wrote:
> There. Now here's the important part: in order to *use* all this, you
> import whatever module defines it, and then say:
>
> class Dog {
> method foo (?$arg) is accessor {
> # accessor code here
> }
> }
>
> If that's not easy enough for you, well, you're probably out of luck.
It would be even easier if we could put the read-accessor-code and
write-accessor-code in different methods.
class Dog {
multi method foo { ... }
multi method foo ($arg) is accessor { ... }
}
With this syntax, either method could be simply be omitted to create a
read-only or write-only accessor. The tricky part is getting the trait
on foo($) to override foo() correctly.
~ John Williams