in reply to Error reporting in modules

Perl already has a fine mechanism to have the user determine whether warnings should be generated or not (the warnings module). Then you don't have to set an attribute for each object (and what would you do in a function that didn't get an object as one of its arguments?).

I'd say, throw a warning (using warnif) if there's a sensible way to continue (say, you can use a default). And die if you can't. A die can always be caught by the caller, so if the caller sees a way to continue, the caller has that option.

Abigail