You can get finer detail from Devel::SmallProf (a line-based profiler) but in practice, sub-based is usually more useful. If the grain seems too large for you, it may mean some of your subs are a bit too large.
I have tendency to be a little short on patience at times. Therfore I usually use Devel::FastProf. It is a perline profiler. It can be used just like dprof:
Update: Also, here is an article on profiling code and how to understand the data being delivered to you by the profiler. It was helpful to me when I was learning to better profile my code: http://www.ddj.com/184404580.