[Bioperl-l] Bio::Cluster
Hilmar Lapp
hlapp@gnf.org
Tue, 6 Aug 2002 15:51:54 -0600
Right. The thing with PrimarySeq::primary_id() is that that method
must not return undef, and is supposed to return a unique ID. The
memory location serves as the last resort in this case.
-hilmar
On Tuesday, August 6, 2002, at 03:08 PM, Andrew Macgregor wrote:
> Hilmar Lapp wrote:
>
>> is there a
>> reason you don't want to return undef for a slot that's undef?
>>
> Hi Hilmar,
>
> No there's not really a reason I do this. When I was putting this
> together I
> based it on Seq.pm. So I looked at code like this:
>
> sub primary_id {
> my ($obj,$value) = @_;
>
> if( defined $value) {
> $obj->{'primary_id'} = $value;
> }
> if( ! exists $obj->{'primary_id'} ) {
> return "$obj";
> }
> return $obj->{'primary_id'};
> }
>
>
> And basically followed that pattern. When something isn't present I
> return
> the stringified reference. I thought I might be breaking something
> in the
> bigger picture if I did not.
>
> I guess looking at this more closely this is only used for
> primary_id. What
> purpose exactly does ' return "$obj" ' serve here? I guess my code
> should
> just be something like:
>
> sub gene {
> my ($obj,$value) = @_;
>
> if( defined $value) {
> $obj->{'gene'} = $value;
> }
> return $obj->{'gene'};
> }
>
>
> Which cuts out:
>
> if( ! exists $obj->{'gene'} ) {
> return "$obj";
> }
>
>
> Does that sound right?
>
> Cheers, Andrew.
>
>
>
>
--
-------------------------------------------------------------
Hilmar Lapp email: lapp at gnf.org
GNF, San Diego, Ca. 92121 phone: +1-858-812-1757
-------------------------------------------------------------