加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – cpan模块的目录结构

发布时间:2020-12-15 23:34:00 所属栏目:大数据 来源:网络整理
导读:我正在研究我想在CPAN中提交的perl模块. 但是我对模块的目录结构有一个小查询. 根据perlmonk article,模块代码目录结构应如下所示: 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-Ba
我正在研究我想在CPAN中提交的perl模块.
但是我对模块的目录结构有一个小查询.

根据perlmonk article,模块代码目录结构应如下所示:

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

但是当我使用该命令时,结构生成如下

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

解决方法

有问题的文章提倡一个相当旧的模块结构.它当然可以使用,但它在良好的测试,构建和分发实践方面已经失去了很多进步.

打破差异:

>模块已从顶层移动到lib /目录.这统一了模块“存在”的位置(即,您处理代码并创建要测试并最终分发的基线模块的位置).它还可以更轻松地设置您需要的任何层次结构(例如子类或辅助模块);较新的设置只会选择这些.较老的可能,但我不熟悉它说是或否.
>运行“make”时,较新设置中的Makefile.PL将会生效.创建一个名为“blib”的库,* b * uild * lib * rary – 这是代码构建用于实际测试的地方.它几乎是lib /的副本,除非你有XS代码,在这种情况下,这是编译的XS代码结束的地方.这使得构建和测试代码的过程更加简单;如果你在lib /中更新文件,Makefile会在尝试测试之前将文件重建为blib.
> t /目录替换test.pl; “make test”将执行t /中的所有* .t文件,而不是必须将所有测试放在test.pl中.这使得编写测试变得更加容易,因为您可以确保在每个测试开始时都具有一致的状态.
> MANIFEST和两者中的更改相同:MANIFEST(由“make manifest”构建)用于确定在打包模块以进行上载时应该重新分发构建库中的哪些文件,并用于验证包是否已完成它被下载并解压缩用于构建.更改只是一个更改日志,您可以手动编辑以记录每个分布式版本中所做的更改.

正如您对问题的评论中所建议的那样,使用Module :: Starter或Dist :: Zilla(警告Dist :: Zilla是基于Moose并将安装大量的先决条件)是一种更现代化的模块构建方法办法.在这两者中,h2xs版本更接近现代包装标准,但你最好使用推荐的软件包启动器选项之一(可能是Module :: Build,它使用Build Perl脚本而不是Makefile来构建码).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读