in reply to Lattice , Planar graphs and GraphViz
Keep in mind that computing the minimum crossing number of a graph is NP-hard (although checking for planarity can be done efficiently). So it is a pretty tough thing to ask of a graph layout engine. Graphviz (and probably any other layout engine) uses only heuristics in its layout.
You may want to check out the Boost graph library. It does appear to have Perl bindings, though I can't speak from any personal experience. It is not clear whether the Perl bindings can do everything the C++ bindings can do. But it is clear that Boost is more of a graph theory library than Graphviz, and it seems able to do some really nice things, including drawing a planar embedding (see this example). If you give it a try, I'd be interested in hearing how it works.