操作系统的 Makefile.PL meta.json prereqs 因此模块不会安装在 Windows 上

问题描述

我正在开发一个不能在 Windows 上运行的 Perl 模块,以防止 CPAN 测试人员在 Windows 上失败 我想使用从 Makefile 生成的分发中的元文件来防止模块被安装或测试在 Windows 上。

如果情况相反(模块仅适用于 Windows)指定对 Win32 的依赖将使其仅可安装在 Windows 上。

另外如果模块转为dist::Zilla,也需要相应的dist.ini解决方案。

解决方法

CPAN Testers FAQ 说:

虽然这不是一个非常优雅的解决方案,但推荐的方法是在 Makefile.PL 或 Build.PL(或测试文件中的 BAIL_OUT)中死亡,并显示以下消息之一:

不支持操作系统

不支持操作系统

,

另一种方法是添加对 Platform::UnixPlatform::Windows 的依赖。

这样做的好处是,当您的模块上传到 CPAN 时,人们会在依赖项中看到“Platform::Whatever”,因此您的模块需要什么平台一目了然。

More information on Platform::*