How about Graph::Easy?
use Graph::Easy;
my $graph = Graph::Easy->new();
# I think I got all the edges added below?
$graph->add_edge(1,2);
$graph->add_edge(2,5);
$graph->add_edge(5,6);
$graph->add_edge(6,7);
$graph->add_edge(7,8);
$graph->add_edge(8,9);
$graph->add_edge(9,11);
$graph->add_edge(8,10);
$graph->add_edge(10,11);
$graph->add_edge(1,4);
$graph->add_edge(4,5);
$graph->add_edge(1,3);
$graph->add_edge(3,5);
$graph->add_edge(1,7);
print $graph->as_ascii;
Output:
+-----------------------------+
| |
| |
| +-------------------+-------------------+
| | v v
+---+ +---+ +---+ +---+ +---+ +---+ +---+
++----+ +----+
| 4 | <-- | | --> | 2 | --> | 5 | --> | 6 | --> | 7 | --> | 8 | -->
+| 10 | --> | 11 |
+---+ | | +---+ +---+ +---+ +---+ +---+
++----+ +----+
| | ^ ^ |
+ ^
| 1 | ------+ | |
+ |
| | | v
+ |
| | | +---+
+ |
| | | | 9 | ----
+-------------+
+---+ | +---+
| |
| |
v |
+---+ |
| 3 | ----------------+
+---+
UPDATE: Note Graph::Easy only *displays* graphs, it doesn't analyze them. To do graph analysis, you'll need Graph. Of course they use different object constructions, but fear not, Graph::Convert converts wonderfully between the two, so you can create, analyze and display graphs with these three modules (Graph, Graph::Easy, Graph::Convert) and they all depend on core modules - so no dependency spiral.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.