我有一大堆实用程序子程序卡在一个巨大的myUtil.pm
Perl模块中。我试图了解一堆子程序如何相互依赖。
我找到Module::ScanDeps,它在模块中查找依赖项。是否有一个类似的工具可以查看模块中的依赖项?
我更愿意进行静态分析,因为我不太确信我有足够的测试用例来覆盖所有代码路径。
答案 0 :(得分:3)
可能有更新的(和基于PPI的),但较旧的B :: Xref会这样做。
Foo.pm:
package Foo;
use 5.014;
use warnings;
sub foo { bar() }
sub bar { $_[0]-- and bar() }
sub baz { foo(); bar () }
1;
perl -MO=Xref -e'use Foo'
:
...
File Foo.pm
Subroutine (definitions)
Package Foo
&bar s4
&baz s6
&foo s4
Subroutine Foo::bar
Package Foo
&bar &5
Subroutine Foo::baz
Package Foo
&bar &6
&foo &6
Subroutine Foo::foo
Package Foo
&bar &4