I've changed my whole style of programming using Data::Dumper::Simple It does the obvious, but instead of a more or less anonymous (unless you use extra key strokes) dump of a given variable, Simple allows named dumps of multiple values one per line (complex structures arrayed in a vertical fashion) I used for years something like print "\$variable = '$variable'\n"; and this completely replaced that with much clearer code. I combine this with a trailing if $debug; and life is very good since my code allows turning $debug on and off selectively. If I combine this approach with some of the things mentioned in the post, I can greatly extend my ability to know what the hell is going on with my program :)