in reply to Using die() in methods
My only advice is to be sensible and don't forget that value of clarity and consistency (if you have controle of either); I rather liberally use die() or throw (from Exception::Class) - especially for resource bound things like databases
Testing exceptions is easy with Test::Exception.
I've always found this Advent entry from 2011 enlightening, http://perladvent.org/2011/2011-12-17.html. I don't use try/catch, but there is good background info in there.
As far as what value to return? Sometimes as you point out you want to return undef or 0. In cases where undef means error but 0 is a legit value, use "defined" to test the return value other than just something like if ($ret) {..}
|
|---|