There's not very much agreement on this. For example, I wouldn't touch Modern::Perl because I don't want to get involved with alternative method resolution systems like C3.

I typically want exceptions, in the form of Exception::Class, and parameter checking, in the form of Params::Validate. The actual modules used are not very important though -- it's validating params and using exceptions that's important.