Re: RFC 171 (v1) my Dog $spot should call a constructor implicitly
[email protected] (Nathan Wiger)
| Newsgroups | perl.perl6.language.objects |
|---|---|
| Message-ID | <[email protected]> |
Piers Cawley wrote:
>
> Eeeewwwwww. Most of the time I use 'my Dog $spot' is along the lines
> of:
>
> my Dog $spot = Dog::Dalmation->new(name => 'Spot');
> $spot->bark;
No problem, that still works, according to the RFC...
> sub bark {
> my Dog $self = shift;
> print $self->name, " barks!\n";
> }
Here I guess I miss the point of the Dog inside the bark() sub? It seems
unnecessary to me. Maybe a better example of what you're trying to get
at?
> There's a whole host of occasions when you want 'my Dog $spot' but you
> *don't* want $spot to be set to Dog->new.
Well, I think the actual method name would be CREATE. So you could have
either a new(), or a CREATE(), or both. Use whichever one you want, no
sweat.
The default core CREATE would simply instantiate a variable, which would
then get set via Dog::Dalmation->new.
-Nate