Carp::Datum - debugging and tracing ultimate module
allows for programming by contract but as a side effect,
throug Log::Agent offers very verbose and
easy-to-follow debugging info.
Forgive my ignorance, but wouldn't using this module require me to change the code in ALL my subroutines? This is what I was trying to avoid. I could be misunderstanding the documentation, however.