On Fri, Aug 04, 2000 at 02:11:30PM -0700, Nathan Wiger wrote:
> First off, nice job Damian. This is the type of want() I've always
> want()ed (excuse the pun). :-)
> 
> The one thing that isn't directly addressed (or maybe it is and I missed
> it) is how to figure out whether something wants an *generic* object or
> not.
> 
> For example, right now I'm writing the localtime() RFC, and I think it
> would be really cool if want() could somehow distinguish between these:
> 
>    $date  =  localtime();     # scalar date
>    $obj   =  localtime();     # localtime obj
> 
> That way, you would be able to get the scalar $date, as well as an $obj
> that would let you get $obj->year directly.

I think we're already there.  In your example above, $date would be an
overloaded "object".  For example:

        $date = localtime();    # date is an object that knows how to:
        print scalar $date;     # output itself in scalar context
        $year = $date->{year};  # be accessed as a method

We just need a hook (think "tie") to make $date morph as needed.  Of
course, we'd probably need to expand all of the special tie methods
(FETCH, STORE, etc.)

> but doesn't seem to mention the generic case; i.e., when you just want
> "a class, any class" (i.e, as the return from a new()).

I think you missed this:

> =item 'OBJREF'
> 
> The subroutine was called in a context that requires an object reference
> be returned:
> 
>       func()->method();

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]

Reply via email to