in reply to Test Blocks and skipping

Test and Test::More are very close to what I want, but insufficient becuase it skips tests but not actual code.

They skip the tests by skipping the code that runs those tests - so you should be able to use them (or the same technique - using next to exit a block from within a subroutine - evil but it works).