我有一个以公司名称“Foobar::Thing”为前缀的 Perl 模块,但被错误地创建并使用不正确的大小写上传到 CPAN。我想重命名模块以使用正确的大小写,例如“FooBar::Thing”。这个模块的用户还不是太多,所以我可以修复模块的使用。是否可以重命名 CPAN 模块?会不会引起冲突?
1 回答
由于 Perl 模块名称区分大小写,因此理论上 CPAN 应该能够同时处理FooBar::Thing
和Foobar::Thing
. 用户可能会感到困惑,但 CPAN 不应该。但是,您知道他们对“理论”和“实践”的看法,不是吗?如果您能够提供更新以Foobar::Thing
使其(a)在使用时发出不推荐使用的警告,并且(b)将所有调用路由到FooBar::Thing
. 您还可以FooBar::Thing
将更新的Foobar::Thing
. 当您确信每个人都已升级时,您可以从 CPAN 中清除碎片。
请注意,不区分大小写的文件系统a(例如 Windows 上的 NTFS 或 Mac OS X 上的 HFS)可能会导致一些问题——因此 CPAN 可能会通过禁止仅在模块的大小写拼写上有所不同的模块来阻止它们姓名。如果是这样,您可能必须使用后缀,例如FooBar::Thing2
带有新大写的模块的版本 2。我不确定模块注册的当前规则是什么(告诉你 15 多年前的相关内容不会有太大帮助——即使我记得),所以我可能完全偏离目标。
您应该查看 Perl 作者的 Upload SErver (PAUSE)对模块命名的看法。但是,AFAICS,它没有说明区分大小写(在避免基于大小写差异的冲突的意义上)。
您还应该通过:
但同样,我没有看到任何关于区分大小写的模块名称。(是的,名称组成部分的上限为 11 个字符,但是......)