$g = GraphViz->new(node => {fontsize => 10}, edge => {fontsize => 9}, rankdir => 'LR'); $g->add_node('email', label => "Email App:\nperiodic DB query\nto send emails", shape => 'box'); $g->add_node('report', label => "periodic financial\nstatement", cluster => 'report'); $g->add_node('cond', label => "amount\nowed", shape => 'Mdiamond'); $g->add_node('msgS', label => "very frightening\nmessage", cluster => 'report'); $g->add_node('msgM', label => "extremely frightening\nmessage with\nrandom death threat", cluster => 'report'); $g->add_node('msgL', label => "very frightening\nmessage without\ndeath threat", cluster => 'report'); $g->add_node('thankC', label => "thank you\nfor your business", cluster => 'thank'); $g->add_node('thankD', label => "thank you\nfor your payment", cluster => 'thank'); $g->add_edge('email' => 'report', label => 'creditor/collector'); $g->add_edge('email' => 'cond', label => 'debtor'); $g->add_edge('cond' => 'msgS', label => 'small'); $g->add_edge('cond' => 'msgM', label => 'medium'); $g->add_edge('cond' => 'msgL', label => 'large'); $g->add_edge('email' => 'thankC', label => 'creditor/collector'); $g->add_edge('email' => 'thankD', label => 'debtor'); $g->as_jpeg("email02.jpg");