[Bioperl-l] Annotated.pm

Hilmar Lapp hlapp at gmx.net
Sat Nov 27 03:41:39 EST 2004

I should add that even Annotated::source() is documented as returning a 
single object:

  Returns : a Bio::Annotation::SimpleValue object representing the 

In this it is easier to detect the problem because a number is not a 
reference, so the first attempt to de-reference it will cause a script 
to die. (Although I wouldn't want to be the person having to debug the 
original cause ...)

See my point?


On Saturday, November 27, 2004, at 12:32  AM, Hilmar Lapp wrote:

> But this is not what I meant. As an example, $annotated->source_tag() 
> will delegate to source():
> sub source_tag {
>   return $shift->source(@_);
> }
> Annotated::source returns what the get_Annotations() short-cut returns:
>   return $self->get_Annotations('source');
> If somebody accidentally added another annotation with tag 'source', 
> not knowing that it is being used internally, the next call to 
> $annotated->source_tag() will return a number, not the source tag, and 
> not an array of source tags.
> This is what I mean by brittle. I mean that it is easy to hang 
> yourself as a user and you don't even get a warning before you die. In 
> this case it will even be a very slow death since a number is still a 
> scalar, and in order to realize the problem you need to actually see 
> that it is a number and not a meaningful string.
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757

More information about the Bioperl-l mailing list