我有一个以公司名称“Foobar :: Thing”为前缀的Perl模块,但是错误地创建并使用不正确的外壳上传到CPAN。我想重命名模块以使用合适的外壳,例如“FooBar :: Thing”。这个模块的用户还不多,所以我可以修复模块的用法。是否可以重命名CPAN模块?它会引起冲突吗?
答案 0 :(得分:3)
由于Perl模块名称区分大小写,因此理论上CPAN应该能够同时处理FooBar::Thing
和Foobar::Thing
。用户可能会感到困惑,但CPAN不应该。但是,你知道他们对“理论”和“实践”的看法,不是吗?如果您能够向Foobar::Thing
提供更新,以便它(a)在使用时给出不推荐的警告,并且(b)将所有呼叫路由到FooBar::Thing
,那将是一件好事。您还可以将FooBar::Thing
列为更新Foobar::Thing
的先决条件。当您确信每个人都已升级时,您可以从CPAN中移除碎片。
请注意,不区分大小写的文件系统(例如Windows上的NTFS或Mac OS X上的HFS)可能会导致一些问题 - 因此,CPAN可能会因不允许通过大写与小写拼写不同的模块来解决这些问题模块名称。如果是这样,您可能必须使用FooBar::Thing2
这样的后缀作为具有新大写的模块的版本2。我不确定目前的模块注册规则是什么(告诉你15年前相关的内容对我来说没有多大帮助 - 即使我记得也是如此),所以我可以完全脱离目标。
你应该看看Perl作者的上传搜索者(PAUSE)必须说On the Naming of Modules。然而,AFAICS,它没有说明区分大小写(在避免基于资本化差异的冲突的意义上)。
您还应该通过:
但同样,我没有看到任何关于区分大小写的模块名称。 (是的,名称组成部分的上限为11个字符,但是......)