Perl模块命名约定

时间:2018-08-07 18:46:14

标签: perl package naming-conventions

我已经检查了 On the Naming of Modulesperldoc perlvarperldoc perlmod 但找不到命名缩写为SMTPORM的模块的最佳做法。

同时在CPAN上看到两个变体名称:SMTPSmtp

如果我的新模块名称是首字母缩写,那么
哪个更好的名称是My::Module::AbcdMy::Module::ABCD

1 个答案:

答案 0 :(得分:2)

在Perl的命名约定中,除了保留之外,您还可以选择一种可以使用的命名约定。 CPAN或核心将不接受以关键字或保留的前缀开头的模块。

因此,您可以选择采用My::Module::AbcdMy::Module::ABCD,只要您选择采用可以帮助人们找到您的模块的那个。

或者,您可以在顶级名称中使用下划线(例如My_Corp::Session或仅使用My_Session)。带有下划线的所有类别也已保留。 (在perlmodlib的“选择模块名称”下对此进行了提及。)

请注意,这两个保留都仅适用于顶级名称。例如,有名为Time::LocalText::CSV_XS的CPAN模块。但是Local::TimeText_CSV::XS是保留名称,不会在CPAN上接受。

贵公司命名模块也可以。 (好吧,除非您为某些真正通用的发声公司工作。)使用反向域名可能会过大,除非您打算将模块分发给其他人。 (但在这种情况下,您可能应该注册一个正常的模块名称。)

您可能想花多长时间How do I choose a package name for a custom Perl module that does not collide with builtin or CPAN packages names?