Thank you everyone for your answers... they have been very helpful. I have already tried creating a method checkError and using the form:
open(...) or $self->checkError(-1, "message with $!");
I am using the method so that checkError has access to all of the methods for the class in its processing. This is a composite of a few of your suggestions and right now is addressing my current needs. For the long term, there is an attractiveness for using exceptions, though I am concerned by some of the comments I've read regarding limitations in the Perl exception mechanism.