我正在研究我想在CPAN中提交的perl模块.但是我对模块的目录结构有一个小查询.
根据perlmonk文章,模块代码目录结构应如下所示:
Foo-Bar-0.01/Bar.pm
Foo-Bar-0.01/Makefile.PL
Foo-Bar-0.01/MANIFEST
Foo-Bar-0.01/Changes
Foo-Bar-0.01/test.pl
Foo-Bar-0.01/README
Run Code Online (Sandbox Code Playgroud)
但是当我使用该命令时,结构生成如下
h2xs -AX Foo::Bar
Writing Foo-Bar/lib/Foo/Bar.pm
Writing Foo-Bar/Makefile.PL
Writing Foo-Bar/README0
Writing Foo-Bar/t/Foo-Bar.t
Writing Foo-Bar/Changes
Writing Foo-Bar/MANIFEST
Run Code Online (Sandbox Code Playgroud)
这篇文章提倡使用相当古老的模块结构。它当然可以使用,但它失去了许多在良好的测试、构建和分发实践方面已经取得的进步。
分解差异:
正如对您的问题的评论中所建议的那样,使用 Module::Starter 或 Dist::Zilla (请注意,Dist::Zilla 是基于 Moose 的,并且会安装大量先决条件)是在更现代的环境中构建模块的更好方法。方式。在这两个版本中,h2xs 版本更接近现代打包标准,但您最好使用推荐的包启动选项之一(可能还有 Module::Build,它使用 Build Perl 脚本而不是 Makefile 来构建代码)。