[Bioperl-l] Re: Test writing
Hilmar Lapp
hlapp at gmx.net
Thu Dec 29 12:48:43 EST 2005
On Dec 29, 2005, at 4:54 AM, Gabriel Valiente wrote:
> Thanks a lot.
>
>>> By the way, can anybody briefly explain why is it necessary to
>>> include prefixes like
>>>
>>> my $common = $t1->Bio::Tree::Compatible::common_labels($t2);
>>
>> I don't know why you would want to do that if $t1 is already a
>> Bio::Tree::Compatible instance (or the module name as a string will
>> do fine too).
>
> I see. The problem is that $t1 is not a Bio::Tree::Compatible instance
> but a Bio::Tree::Tree instance.
Then why do you use the $t1-> notation to start with? You'd instead
write
my $common = Bio::Tree::Compatible->common_labels($t2);
>
> Perhaps the usual workaround in these situations is to add a dummy
> Bio::Tree::Compatible->new method, that falls back on the
> Bio::Tree::Tree->new method. The advantage would be to allow for a
> more concise use of the Bio::Tree::Compatible methods.
If Bio::Tree::Compatible inherits from Bio::Tree::Tree then you don't
need to implement new() unless you have some special setup to do during
initialization. If you don't inherit from it, then do not fall back on
some other class' new() method() either - otherwise at best you'll
confuse perl or yourself about the inheritance structure.
Hth,
-hilmar
BTW Please keep threads on the list. There are hundreds of people who
might be able to help you.
>
> Please let me know what you think.
>
> Gabriel
>
>
--
-------------------------------------------------------------
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