If you're struggling to understand a complex app, a graph of the inheritance 
hierarchy can be very useful.  Here's an example for TAP::Parser:

http://i82.photobucket.com/albums/j275/publius_ovidius/Geek%20Stuff/graph-5.png

It's generated with this code:

    #!/usr/bin/env perl

    use strict;
    use warnings;

    use Class::Sniff 0.08;
    use TAP::Parser;
    my @sniffs = Class::Sniff->new_from_namespace({
        namespace => 'TAP::Parser',
        universal => 1,
    });
    my $graph    = $sniffs[0]->combine_graphs( @sniffs[ 1 .. $#sniffs ] );
    my $graphviz = $graph->as_graphviz();
    open my $DOT, '|dot -Tpng -o graph.png' 
        or die("Cannot open pipe to dot: $!");
    print $DOT $graphviz;

 
It should be on the CPAN soon.  If you prefer, it's also on github:

  http://github.com/Ovid/class--sniff/tree/master

Cheers,
Ovid
--
Buy the book         - http://www.oreilly.com/catalog/perlhks/
Tech blog            - http://use.perl.org/~Ovid/journal/
Twitter              - http://twitter.com/OvidPerl
Official Perl 6 Wiki - http://www.perlfoundation.org/perl6

Reply via email to