if (defined $self->pathname) { $self->io_handle(IO::File->new); $self->io_handle->open($self->pathname, @args) or $self->throw($self->open_msg); } elsif (defined $self->_handle and not $self->io_handle->opened # <-- line 88 ) { # XXX Not tested $self->io_handle->fdopen($self->_handle, @args); } #### ... elsif (defined $self->_handle) { if ($self->_handle->opened) { # already open ? --> set/use it $self->io_handle($self->_handle); } else { # not open --> open it # XXX Not tested $self->io_handle->fdopen($self->_handle, @args); } }