in reply to Commenting out carpout causes script to hang
Is it possible that CGI::Carp was the only thing making headers? I read in the docs:
Fatal errors will now be echoed to the browser as well as to the log. CGI::Carp arranges to send a minimal HTTP header to the browser...which makes me suspect that you aren't sending headers in any other way. But that's just my best guess without running any code.
The Gantry Web Framework Book is now available.