[Bioperl-l] final proposal: Bio::DB::WebSeqDBI

Hilmar Lapp lapp@gnf.org
Mon, 11 Dec 2000 15:47:39 -0800

Jason Stajich wrote:
> One issue I am not sure how to best deal with, the temporary file removal
> at the end of the life of the Bio::DB::WebSeqDBI object.  The following
> code illustrates a case this will remove files too soon.
> my $seqdb = new Bio::DB::Genbank(-retrievaltype=>'tempfile');
> my $seqio = $seqdb->get_Stream_by_id($accession);
> undef $seqdb;  # this will remove the seqdb object and cleanup the
>                # tempfile that was created
> my $seq = $seqio->next_seq(); # bomb because no file exists now.

Provided that things work the same way as in e.g. C (and it ought to be so,
because it's the OS that dictates it), the tempfile should not be
physically removed as long as there is a stream (filehandle) open on it (it
may be invisible to directory listings though). Since SeqIO::* modules keep
a file handle open until $seqio->close() is called, there should be no
problem. Am I missing something? Have you tested for the behaviour your

> Is the name WebSeqDBI misleading - (ie looks like it would be a DBI
> module...?) We like to use 'I' at the end of a module name to denote
> interfaces.

I agree with David, it's somewhat misleading. I don't have a strong view
though. In general, I wouldn't have considered it as an interface anyway
(why does it qualify as one?), so why not simply omit the trailing 'I'?


Hilmar Lapp                            email: lapp@gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757