-1

さまざまなファイルとサブファイルの構造化された階層があります。ブロック図に変換したいと思います。

ここで質問です - perl はこのタイプのアイデアを直接的または間接的にサポートしていますか?

他の解決策/回避策を知っている場合は、共有してください。前もって感謝します。

4

1 に答える 1

3

GraphVizを調べることができます。ここに紹介CPANリンクがあります。そして、私が知らないいくつかのソースからのサンプルコード:

use strict;
use warnings;
use IO::Dir;
use GraphViz;
use GraphViz::Small;
use GraphViz::No;

my $directory = './';

my $graph = GraphViz::No->new(directed => 0, layout => 'twopi');

walk($directory);

sub walk {
  my($dir, $parent) = @_;
  $graph->add_node($dir) unless defined $parent;
  my $d = IO::Dir->new($dir);
  foreach my $file ($d->read) {
    next if $file =~ /^\./;
    if (-f $dir . $file) {
      $graph->add_node($dir . $file, label => $file);
      $graph->add_edge($dir => $dir . $file);
    } elsif (-d $dir . $file) {
      $graph->add_node($dir . $file . '/', label => $file . '/');
      $graph->add_edge($dir => $dir . $file . '/');
      walk($dir . $file . '/', $dir);
    }
  }
}

$graph->as_png("directories.png");
于 2012-11-15T05:26:36.960 に答える