Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl模块命名约定_Perl_Package_Naming Conventions - Fatal编程技术网

Perl模块命名约定

Perl模块命名约定,perl,package,naming-conventions,Perl,Package,Naming Conventions,我查过了 , 和 但找不到命名名称为首字母缩略词的模块的最佳做法:SMTP,ORM 在CPAN上立即可以看到两个变体名称:SMTP和SMTP 如果我的新模块名称是首字母缩略词,则 更好的名称是什么:My::Module::Abcd或My::Module::Abcd?在Perl命名约定中,除了保留之外,您还可以选择一种可以在您使用的人员中理解的命名约定。CPAN或core不会接受以关键字或保留前缀开头的模块 因此,您可以选择采用My::Module::Abcd或My::Module::Abcd,只

我查过了 , 和 但找不到命名名称为首字母缩略词的模块的最佳做法:
SMTP
ORM

在CPAN上立即可以看到两个变体名称:
SMTP
SMTP

如果我的新模块名称是首字母缩略词,则

更好的名称是什么:
My::Module::Abcd
My::Module::Abcd

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

因此,您可以选择采用
My::Module::Abcd
My::Module::Abcd
,只要您选择采用能够帮助人们找到您的模块

或者,您可以在顶级名称中使用下划线(如
My_Corp::Session
或仅
My_Session
)。所有带有下划线的类别也已保留。(这在“为模块选择名称”下的中提到。)

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

以公司名称命名模块也可以。(好吧,除非你为一家听起来很普通的公司工作。)使用反向域名可能有点过头了,除非你打算将你的模块分发给其他人。(但在这种情况下,您可能应该注册一个普通的模块名。)


如果查看
Net::
名称空间,您可能需要花很长时间查看,其中实现了许多网络协议,而那些只是首字母缩写的协议都使用大写字母。。。(我相信你可以通过仔细搜索找到反例,但请看绝大多数)。但我说的是首字母缩略词,不是缩写词。缩写词可以是
Abbr
我想,一般来说(如果你想让人们在你的具体姓名问题上帮助你,只需公布涉及的真实姓名)。从第一个链接中,选择哪一个更能帮助人们找到你的模块。