in reply to Programs/Methods for analyzing an existing Perl based system

You can use a profiler, like Devel::DProf or my module Devel::Profiler, to extract a call-tree for a given request. If there are a small enough number of request types you might consider producing a call-tree for each request. This might give you an idea of how complex the application is.

Here's a quick example to get you started. First, run the code under a profiler:

$ perl -MDevel::Profiler -e 'sub foo { bar(); } sub bar { 1 }; print f +oo();' 1

Then use the appropriate tool to generate a call-tree. In this case, dprofpp:

$ dprofpp -T main::foo main::bar

-sam