sub r { my $g = shift; my $v = shift; my @ns = $g->neighbors($v); print $v."\n"; $g->delete_vertex($v); foreach my $n (@ns){ r($g, $n); } } while (scalar $g->vertices > 0){ print "next set:\n"; r($g, ($g->vertices)[0]); }