Re: [RFC] Stringify a thread

[email protected] (Jim Bodwin) Thu, 05 Oct 2006 11:40:43 -0700
Newsgroups perl.perl5.porters,perl.ithreads
Message-ID <[email protected]>

John Peacock wrote:
>
> You have a very narrow, and I might say a little bizarre, 
> interpretation of how Perl objects stringify. 
You are not overloading the object, you are overloading the reference.  
If you were overloading the deref of the reference then I wouldn't have 
a problem with this.  But I really don't like the idea of a reference 
having difference behaviors based on the kind of object that it is 
referencing.  If there was a different class for the reference itself 
(i.e., thrRef) then I wouldn't have a problem either but since all 
references in Perl are to the same "type", I don't think that changing 
the behavior based on the deref is correct.
>
>> What you propose is actually a change to the way that references 
>> behave and not the way that your class behaves.  That is, you want 
>> the behavior of a reference in certain types of expressions be 
>> different depending on the class of object that it references.
>
> Yes, overloading allows me, as a class author, full freedom to decide 
> how my object will behave in different situations.  It has nothing 
> whatsoever to do with the behavior of well-behaved introspection tools:
No, you are changing the way the reference to the class behaves.  I have 
no problem with you changing the class itself.
>
> What code do you have that can't handle this?  Or are you just arguing 
> the theoretical case?
It is mostly that I don't want the interactive debugger behavior to 
change.  I use this almost daily.  This is particularly useful when 
viewing a reference to a class with several derived classes. WIth the 
current behavior you can see immediately which sub-class the reference 
"points" to.

  - Jim