use strict;
use warnings;
use GraphViz;

# Adjazenzmatrix 
my @mat = (
  [1, 1, 1, 0, 0, 0],
  [1, 1, 0, 1, 0, 0],
  [1, 0, 1, 1, 0, 0],
  [0, 1, 1, 1, 0, 1],
  [0, 0, 1, 0, 0, 1],
  [0, 0, 0, 0, 1, 1]); 

# Die Knoten dazu
my @nodes = ('1', '2', '3', '4', '5', '6'); 

# GraphViz-Objekt anlegen
my $g = GraphViz->new(layout => 'circo',
                      node   => { fontname => 'Helvetica',
                                  fontsize => '12',
                                  shape    => 'circle'},
                       edge  => { fontname => 'Helvetica',
                                  fontsize => '12' } 
                      );

# Knoten eintragen
$g->add_node($_) foreach (@nodes);

# Kanten eintragen
for my $i (0 .. $#nodes)
  {
  for my $j (0 .. $#nodes)
    {
    $g->add_edge($nodes[$i] => $nodes[$j]) if ($mat[$i][$j]);
    }
  }

# und wegspeichern
open (DAT, ">", "gviz3.png") || die "Oops: $!\n";
binmode DAT;
print DAT $g->as_png;
close(DAT);

