While I agree with you about liking the perl debugger, for larger programs I prefer debugging by logging. Use a good logging mechanism like Log::Log4perl and log anything of interest. I even leave this turned on in production; it's only disk space and it allows you to debug something that happened when you weren't expecting a problem. I also wrap warn and die into Log4perl so I get warning and die messages in the log too, in context.