use v5.12; use Graph; my @jobs = "A" .. "J"; my @rules = ( [qw/ A C /], # A before C [qw/ D B /], # D before B [qw/ J F /], # J before F [qw/ E J /], # E before J [qw/ I B /], # I before B ); my $g = "Graph"->new; $g->add_vertex($_) for @jobs; $g->add_edge(@$_) for @rules; say for $g->topological_sort;