GraphViz::ISA - @ISA graphisch darstellen

| | Kommentare (0)

GraphViz::ISA - Graphing class hierarchies at run-time von Marcel Grünauer ermöglicht die graphische Darstellung des @ISA.

Beispiel

Das folgende Beispielprogramm habe ich der Distribution von GraphViz::ISA entnommen:

#!/usr/bin/perl
# The hierarchy shown here is based on an example Damian Conway's book
# "Object Oriented Perl"
#
# Usage:  ./isatest.pl >isa.png
#
######################################################################
# https://github.com/hanekomu/GraphViz-ISA/blob/master/eg/isatest.pl #
######################################################################
use warnings;
use strict;
use GraphViz::ISA;
sub Coder::new      { bless {}, (ref($_[0]) || $_[0]) }
sub Documenter::new { bless {}, (ref($_[0]) || $_[0]) }
@Programmer::ISA = qw(Coder Documenter);
sub Obfuscator::new { bless {}, (ref($_[0]) || $_[0]) }
@Perl::Hacker::ISA = qw(Programmer Obfuscator);
sub Writer::new           { bless {}, (ref($_[0]) || $_[0]) }
sub Humorist::new         { bless {}, (ref($_[0]) || $_[0]) }
sub One::Sick::Puppy::new { bless {}, (ref($_[0]) || $_[0]) }
@Punmeister::ISA = qw(Writer Humorist One::Sick::Puppy);
sub Language::Maestro::new { bless {}, (ref($_[0]) || $_[0]) }
sub Educator::new          { bless {}, (ref($_[0]) || $_[0]) }
@Perl::Guru::ISA = qw(Perl::Hacker Language::Maestro Educator Punmeister);
my $p = Perl::Guru->new;
my $g = GraphViz::ISA->new($p);
print $g->as_png;

Das Programm erzeugt folgende Graphik:

graphviz-isa-klein.png

Siehe auch

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 1.12.10 21:15.

Perl Advent(ures) 2010 ist der vorherige Eintrag in diesem Blog.

Crypt::Cracklib - Schwache Passwörter verhindern ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.