This also currently lives on GitHub at https://github.com/PDLPorters/pdl/blob/master/Example/doc-pp. It helps me see at a glance what PP parameters get data from each other, but the principle should be widely applicable:
use strict; use warnings; use PDL::PP; use Graph; use GraphViz2; my $g = Graph->new; # should really be hypergraph but GraphViz2 not do + yet for my $r (@{$PDL::PP::deftbl}) { for my $t (@{$r->{targets}}) { $g->add_edge($t, $_) for map s/_//gr, @{$r->{conditions}||[]}; } } my ($fmt) = $ARGV[0] =~ /\.([^.]+)$/; $g->set_graph_attribute(graphviz=>{graph=>{rankdir=>'LR'}}); GraphViz2->from_graph($g)->run(format=>$fmt,output_file=>$ARGV[0]); =head1 NAME doc-pp - Generate graph of pp_def key dependencies with graphviz =head1 SYNOPSIS doc-pp deps.svg =head1 DESCRIPTION Uses L<Graph> and L<GraphViz2> to visualise the dependencies between keys in L<PDL::PP/pp_def>.
  • Comment on Generate graphviz visualisation of interrelationships between variables using Graph and GraphViz2
  • Download Code