On 4/19/04 4:47 PM, [EMAIL PROTECTED] wrote:
>> On 4/19/04 3:58 PM, Austin Hastings wrote:
>> One work-around might be an alternate kind of default accessor that doesn't
>> allow assignment:
>> 
>>     $dog.name         # get
>>     $dog.name('foo')  # set
>>     $dog.name = 'foo' # compile-time error
> 
> I think we already have this.  Just define a non-rw attribute and then
> add your own writer as a multi-method.
> 
>     has Str $.name;
>     multi method name(Str $n) {$.name = $n;}

Yeah, that's exactly what I don't want to type over and over :)  It's not
much better than the old Perl 5 standby:

    sub name { @_ > 1 ? $_[0]->{'name'} = $_[1] : $_[0]->{'name'} }

since once I have to write something, the time and effort savings is pretty
much cancelled out.

-John

Reply via email to