use Graph::Directed; my $g = Graph::Directed->new; # A directed graph. $g->add_edge(...); $g->add_vertex(...); $g->vertices(...) $g->edges(...) my @ts = $g->topological_sort;