gpt4 book ai didi

perl - 如何可视化 perl 文件的代码依赖关系?

转载 作者:行者123 更新时间:2023-12-01 13:00:08 30 4
gpt4 key购买 nike

Visual Studio ,可以建立依赖图。这是一个相当酷的功能。

我的问题集中在 Perl --- 是否存在可以为 Perl 模块执行此操作的适当工具?

最佳答案

如果您(只是)想显示/找到它们 use ScanDeps

通过命令行程序 scandeps.pl:

% scandeps.pl *.pm          # Print PREREQ_PM section for *.pm
% scandeps.pl -e "use utf8" # Read script from command line
% scandeps.pl -B *.pm # Include core modules
% scandeps.pl -V *.pm # Show autoload/shared/data files

在程序中使用;

use Module::ScanDeps;

# standard usage
my $hash_ref = scan_deps(
files => [ 'a.pl', 'b.pl' ],
recurse => 1,
);

# shorthand; assume recurse == 1
my $hash_ref = scan_deps( 'a.pl', 'b.pl' );

# App::Packer::Frontend compatible interface
# see App::Packer::Frontend for the structure returned by get_files
my $scan = Module::ScanDeps->new;
$scan->set_file( 'a.pl' );
$scan->set_options( add_modules => [ 'Test::More' ] );
$scan->calculate_info;
my $files = $scan->get_files;

如果你想在漂亮的图表/树中显示它们 use GraphViz2

此外,要扫描 CPAN 依赖项,您可以提供 http://deps.cpantesters.org/一个尝试..

更多选项是:

CPAN::FindDependencies - 在 CPAN 上查找模块的依赖项

use CPAN::FindDependencies;
my @dependencies = CPAN::FindDependencies::finddeps("CPAN");
foreach my $dep (@dependencies) {
print ' ' x $dep->depth();
print $dep->name().' ('.$dep->distribution().")\n";
}

Module::Extract::Use - 拉出模块使用的模块

use Module::Extract::Use;

my $extor = Module::Extract::Use->new;

my @modules = $extor->get_modules( $file );
if( $extor->error ) { ... }

my $details = $extor->get_modules_with_details( $file );
foreach my $detail ( @$details ) {
printf "%s %s imports %s\n",
$detail->module, $detail->version,
join ' ', @{ $detail->imports }
}

也许this conclusion会让你更亮..

关于perl - 如何可视化 perl 文件的代码依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811643/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com