Are there other ways for debugging Perl programs apart from Data::Dumper and perl -d?
I like Devel::Trace. Basically it gives you an execution dump, showing you the code paths.
On another side, test-driven development is all the rage now, so you could also be interested in profiling tools like Devel::NYTProf for highly advanced testing. See this Tim Bunce's blog post for an interesting overview.