[Bioperl-l] SeqIO fixing: detecting if a filehandle is open for writing

Peter van Heusden pvh at egenetics.com
Thu Aug 5 10:13:38 EDT 2004

Hilmar Lapp wrote:

> Quite frankly IMNSHO if you open a file for reading and then - 
> unsuccessfully - try to write to the file this is not a bioperl error, 
> or perl error for that matter, but a programming error. Perl will be 
> no more verbose if you do this ... at least as far as I'm aware.
> I.e., the documentation should be that if you do an operation to a 
> file or SeqIO handle for which you did not open it in the first place 
> then the behavior is undefined.
Yep, as I said in my documentation, the options are fix the 
documentation or fix the code. I acknowledge that this is programming 
error - but the implication is that a single typo (no '>' when opening 
the file) results in silent failure - i.e. it appears to work, but 
doesn't. The Perl behaviour is slightly different (not that I think 
anyone checks these things): if you do 'print $fh "FOO\n"' and $fh is 
open for reading only, the return value of print is undef (otherwise it 
is 1).

There might not be anything do-able about this case, but as far as 
possible I think that reasonable programmer errors should be caught.


More information about the Bioperl-l mailing list