我已经构建了不同文件和子文件的层次结构。我想将其转换为框图。
现在的问题是 - perl是直接还是间接地支持这种想法?
如果您知道任何其他解决方案/解决方案,请分享。提前致谢。
答案 0 :(得分:3)
您可以查看GraphViz。这是introduction和CPAN link。来自某些来源的示例代码我不知道:
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");