
Test::effects allows one to test all effects of some code to be tested at once: return value, i/o, warnings, exceptions, etc.
test::effects provides a single exported subroutine: effects_ok.
this sub expects a block of code (or sub ref) as its first argument, followed by an optional hash ref as its second, and an optional string as its third.