Bioperl-guts: Bug page - using the bug tracker

Steve A. Chervitz sac@alberich.Stanford.EDU
Wed, 2 Sep 1998 12:53:10 -0700 (PDT)


Ewan has uncovered a bug cause by my recent AUTOLOADing trick 
wherein I comment out the __END__ before the methods to be AUTOLOADed and 
have the Makefile.PL uncomment it. The aim was to enable the modules to 
be used as-is from the distribution without the need to autosplit, yet 
still permit the make process to autosplit them for improved compiling
speed. The problem is that the pre-installation version of the module now 
lacks an __END__ and there are comments at the bottom of the module 
that are not enclosed in POD commands (!). I'll fix this and upload a new 
version. 

How do people feel about AUTOLOADing? AUTOLOADing is great but does add 
complexity. I started using it on my version of PreSeq.pm so that you 
don't have to always load code for parsing & outputing every format when 
all you want is raw sequence. I've been debating whether to use the standard 
AUTOLOADing technique or to adopt the strategy Lincoln uses in CGI.pm or to 
just not AUTOLOAD at all. 

My OO-sense tells me that having lots of AUTOLOADed methods signals the need 
for a separate module(s) for these methods. Separate modules would not 
be as efficient since you would load *all* methods of the other module, 
not single methods as needed, as AUTOLOADing permits. It may not always
make sense to form separate modules, and, as people have mentioned, 
single modules can be more practical than collections (CGI.pm vs. CGI::*).
If people want to have monolothic modules, they should endeavor to make 
them efficient. Perl's AUTOLOADing capability is novel and I think can be 
used effectively. The question is: what's the best way to use it and do 
we want to have a consistent Bioperl AUTOLOADing strategy?

Steve Chervitz
sac@genome.stanford.edu


On Wed, 2 Sep 1998, Ewan Birney wrote:

> 
> Ok. I am *seriously* editing the Seq.pm I've just committ'd
> my changes but I can't compile due to an error (I think!) in
> Bio::Object.pm - I guess one for sac (?) - or am I missing
> something?
> 
> 
> Here's the report
> 
> ics1d:[/prog/bioperl]<157>: perl -c Bio/Seq.pm
> Bareword "_name" not allowed while "strict subs" in use at
> Bio/Root/Object.pm line 2572.
> Bareword "Common" not allowed while "strict subs" in use at
> Bio/Root/Object.pm line 2572.
> Bareword found where operator expected at Bio/Root/Object.pm line 2572,
> near "Common name"
>         (Do you need to predeclare Common?)
> Missing $ on loop variable at Bio/Root/Object.pm line 2572.
> BEGIN failed--compilation aborted at Bio/Seq.pm line 97.
> 
> I've put this into the jitterbug bug tracker as well.
> 
> Chris - can we get jitterbug to automatically mail this list
> when a bug gets in (again - this is what perl5porters have)
> 
> 
> Ewan Birney
> <birney@sanger.ac.uk>
> http://www.sanger.ac.uk/Users/birney/
> 
> =========== Bioperl Project Mailing List Message Footer =======
> Project URL: http://bio.perl.org
> For info about how to (un)subscribe, where messages are archived, etc:
> http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl-guts.html
> ====================================================================
> 

=========== Bioperl Project Mailing List Message Footer =======
Project URL: http://bio.perl.org
For info about how to (un)subscribe, where messages are archived, etc:
http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl-guts.html
====================================================================