Perl函数用于长名称的命名约定

时间:2014-06-26 13:24:40

标签: perl

我已经在线阅读了一些关于Perl style命名约定的文章,其中建议使用小写字母并用下划线分隔单词的函数或方法名称。其他一些人使用小写的第一个单词然后将其他单词大写。当然,Windows .NET等将每个单词大写,没有下划线。

我有一些包方法很多像entriesoncurrentpage这样的单词,如果我按照Perl风格建议我应该这样做:

sub entries_on_current_page {...}

这为方法名称添加了四个下划线字母,另一个样式是:

sub entriesOnCurrentPage {...}

和Windows样式应该是:

sub EntriesOnCurrentPage {...}

PHP有时会使用带有下划线的全部小写,例如mysql_real_escape_string(),有时会使用全部小写但没有下划线,如htmlspecialchars,当然PHP函数名称不区分大小写,因此Perl不支持此功能。

所以问题是,对于带有很多单词的长名称,用于Perl编码的最佳样式是什么。

1 个答案:

答案 0 :(得分:7)

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

后来,Damian Conway的书Perl Best Practices建议使用下划线而不是骆驼套管。达米安认为它增加了可读性,而且输入的难度也不大。

Damian Conway关于名字的建议成为标准,因为1)。他是对的。它更易读,而且打字难度更大,最重要的是2)。它被纳入Perltidy。 Perltidy是一个根据Damian的建议帮助标准化代码的程序。 Perltidy与Java中的CheckStyle非常相似。

这些任意标准吗?是的,所有标准都有些武断。您有一些候选人的规则建议,您必须做出决定:

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

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