The GraphViz widget is derived from Tk::Canvas. It adds the ability to render graphs in the canvas. The graphs can be specified either using the DOT graph-description language, or using via a GraphViz object.
When show() is called, the graph is passed to the dot command to generate the layout info. That info is then used to create lines, rectangles, etc in the canvas that reflect the generated layout.
Once the items have been created in the graph, they can be used like any normal canvas items: events can be bound, etc. In this way, interactive graphing applications can be created very easily.
my $gv = $mw->GraphViz ( qw/-width 300 -height 300/ )
->pack ( qw/-expand yes -fill both/ );
$gv->show ( $dotfile );