in reply to Re: Multi level dependency structure
in thread Multi level dependency structure
pokki, absolutely brilliant! ++ I needed to see this work myself and had Graph::Easy but couldn't duplicate. The CPAN install for Graph::Directed was easy (Win7 x64 / Strawberry 5.18.1) and I whipped this up based on your example:
#!perl use strict; use warnings; use Graph::Directed; my $graph = Graph::Directed->new; while ( my $line = <DATA> ) { chomp $line; my ( $job, @deps ) = split( /,/, $line ); for my $dep (@deps) { $graph->add_edge( $job, $dep ); } } for my $job ( sort ( $graph->vertices ) ) { print "$job requires "; for ( sort ( $graph->all_successors($job) ) ) { print "$_ "; } print "\n"; } __DATA__ job1, job2,job1, job3,job2 job4,job2 job5,job2,job4 job6,jobz joba,job4,jobb jobz,jobbc,job2
and outputs
job1 requires job2 requires job1 job3 requires job1 job2 job4 requires job1 job2 job5 requires job1 job2 job4 job6 requires job1 job2 jobbc jobz joba requires job1 job2 job4 jobb jobb requires jobbc requires jobz requires job1 job2 jobbc
|
|---|