Stuart Cook <[EMAIL PROTECTED]> wrote:
> On 11/08/05, Larry Wall <[EMAIL PROTECTED]> wrote:
> > I'll have to think about the rest of your proposal, but I was suddenly
> > struck with the thought that our "platonic" Class objects are really
> > forms of undef:
> >
> >     say defined IO; # prints 0
> >
> > That is, we already have an object of type IO that doesn't really
> > have a value yet.  And maybe that's the real difference between the
> > class object and the metaclass object.  And maybe we can reason
> > about objects of type IO without worrying about the definedness,
> > if all classes already include their own personal undef.
>
> Wow, that's crazy enough to actually work!
>
> This approach has a few nice properties:

One that you missed was that this syntax:

   my Dog $spot .=new();

Falls out of it quite naturally.

On the other hand, there are other things that don't work quite so well:

   my Dog $spot;
   $spot.can('bark');    # Not until he's instantiated...

On the gripping hand, maybe you should have to ask the metaclass about
that anyway:

   $spot.meta.class_can('bark');        #No
   $spot.meta.instance_can('bark');    #Yes

Hmm.

-- 
Brent 'Dax' Royal-Gordon <[EMAIL PROTECTED]>
Perl and Parrot hacker

Reply via email to