Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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 - Fatal编程技术网

长名称的Perl函数命名约定

长名称的Perl函数命名约定,perl,Perl,我在网上读过一些关于命名约定的文章,其中建议在函数或方法名称中使用小写字母和下划线分隔单词。有些人先用小写字母表示第一个单词,然后用大写字母表示其他单词。当然,Windows.NET等将每个单词大写,不使用下划线 我有一些软件包方法,很多词如entriesoncurrentpage,如果我遵循Perl风格,我应该像这样做: sub entries_on_current_page {...} 这在方法名称中添加了四个下划线字母,另一种样式是: sub entriesOnCurrentPage {

我在网上读过一些关于命名约定的文章,其中建议在函数或方法名称中使用小写字母和下划线分隔单词。有些人先用小写字母表示第一个单词,然后用大写字母表示其他单词。当然,Windows.NET等将每个单词大写,不使用下划线

我有一些软件包方法,很多词如
entriesoncurrentpage
,如果我遵循Perl风格,我应该像这样做:

sub entries_on_current_page {...}
这在方法名称中添加了四个下划线字母,另一种样式是:

sub entriesOnCurrentPage {...}
和Windows样式应为:

sub EntriesOnCurrentPage {...}
PHP有时使用带下划线的所有小写字母,如
mysql\u real\u escape\u string()
,有时使用不带下划线的所有小写字母,如
htmlspecialchars
,当然PHP函数名不区分大小写,因此Perl不支持此功能


因此,问题是,对于包含许多单词的长名称,Perl编码的最佳风格是什么。

最初,大多数Perl开发人员使用首字母小写的驼峰式大小写。这是大多数编程语言的标准。第一个字母大写的名称用于类和方法

后来,Damian Conway的书建议使用下划线而不是驼峰式的大小写。达米安认为它增加了可读性,而且打字也不难

达米安·康威关于名字的建议成为标准,因为(1)。他是对的。它更易读,打字也不难,最重要的是2)。它被并入了一个系统。Perltidy是一个根据Damian的建议帮助标准化代码的程序。Perltidy与Java中的非常相似

这些是武断的标准吗?是的,所有的标准在本质上都有些武断。您对规则有一些候选建议,您必须做出决定:

  • while
    循环和
    if
    语句中的大括号是否应附加在行的末尾,或放在
    while
    if
    语句下面。在standerd C风格中,卷曲的背带被抱住。在Java中,它们不应该根据CheckStyle。在Kornshell中,
    then
    位于
    if
    下。在Bash中,标准是
    then
    在同一行,即使Bash解释器并不喜欢它。(您必须在
    之前添加分号,然后在
    之前添加分号,因为它被视为一个单独的命令
  • 变量名应该如何命名。在大多数语言中,CamelCase规则。在.NET中,您甚至可以将第一个字符大写,但在Perl中,我们使用下划线
  • 常量应该全部大写吗?大多数语言都同意这一点。然而,在shell脚本中,您通常为特殊环境变量保留所有大写变量名,例如
    $PWD
    $PATH
    ,等等。因此,在Bash和Kornshell脚本中,常量变量都像正则变量一样使用camelCased

我们的想法是遵循该语言的标准。为什么?因为标准是这么说的。因为无论花括号是否被拥抱,你都不能像与其他程序员一样与标准争论。主要是要意识到大多数标准可能有点武断,但它们并不真正影响你的编程方式。通过每个人都遵循一个标准,你就更容易理解别人的代码。

社区惯例似乎大多是
名称加下划线,而不是
camelCase
,但最终没有“最佳”选项,一致性比您一贯使用的样式更重要。您的第一句话回答了您自己的问题。故事结束。我看不出.NET或PHP在这里有什么关系。如果您想要一致性和James Green(和我)建议,然后你会使用第一个。你将要使用的几乎所有模块都将使用该约定。这是我想从专业人士那里了解的,以便做出一个初学者决定,尽管事实上会在名称中添加多少下划线,专门用于诸如get_on_start_is_action_等小词。我会使用
当前页面条目
使其更短。这将从哪个对象或类调用?如果$current_page是对象,我只会使用
条目
。大小写有助于区分
$local_names
常量
全局
,例如
Package::names
,因此最终决定基于其他注释和您的答案s在所有Perl编码中使用当前页面样式的条目,所以这是Perl的最佳实践,一般来说,这将是我的风格。我对吗?@daliaessam阅读了Damian的书,或者Perltidy上的文档,它打破了Damian的规则,但没有包括他的参数作为原因。当你编写Perl时,标准是使用下划线。当使用PHP或Java编程时,请使用首字母小写的camelCase。请理解常量、全局变量、类、包名等之间的风格不同。“最初,大多数Perl开发人员使用首字母小写的camelCase”-我不确定这是不是真的。从我记忆中起(至少可以追溯到1996年)就一直建议使用带下划线的小写字母。您在1996年仍然在谈论Perl 5。我在Perl 3.x时代开始学习Perl,当时Perl是用Perl编写的,并被认为是Awk的替代品。我不认为当时有Perl风格的手册。当时《骆驼和骆驼》一书中的大多数示例都使用了camelCasing,这在大多数编程语言中都是这样做的。