GraphViz is a module that allows you to produce Graphs - that is to
say diagrams with nodes connected by links. I personally use GraphViz
to produce diagrams of our network and systems. For me, writing out a
quick set of perl is infinitely easier than faffing around with a
vector based graphics program. We all really, really hate to create
documentation...so why not let Perl do it for us?

GraphViz's great strength comes from the fact that the programmer does
not have to worry about the layout of the nodes - the program itself
moves nodes around to produce the most optimum and clear layout. Of
course you are able to group and otherwise influence the nodes, but
this simplicity - freeing you up from the hassles of worrying about
design and just concentrating on content - allows you to work much
quicker. More importantly, it makes it possible to write programs that
feed data into GraphViz that do not necessarily have access to context
data that would normally be required for layout.

Leon Brocard has also included many such utilities with the GraphViz
distribution that allow the perl programmer to produce useful things
with GraphViz. Find dprof too complicated? Get GraphViz to draw a
graph, each node representing a sub procedure with weightings on the
nodes. Want a tree representation of XML? Use GraphViz::XML.
Finding a regular expression hard to understand? Use GraphViz::Regex.
You get the idea.