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

dal*_*sam 3 perl

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

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

sub entries_on_current_page {...}
Run Code Online (Sandbox Code Playgroud)

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

sub entriesOnCurrentPage {...}
Run Code Online (Sandbox Code Playgroud)

和Windows风格应该是:

sub EntriesOnCurrentPage {...}
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_* W. 8

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

后来,达米安康威的书Perl Best Practices建议使用下划线而不是骆驼外壳.达米安认为它增加了可读性,而且输入的难度也不大.

达米安康威关于名字的建议成为标准,因为1).他是对的.它更易读,并且输入的难度也不大,最重要的是2).它被纳入Perltidy.Perltidy是一个根据Damian的建议帮助标准化代码的程序.Perltidy很像Java中的CheckStyle.

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

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

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

  • "最初,大多数Perl开发人员使用骆驼外壳,第一个字母小写" - 我不确定这是真的.[perlstyle手册页](http://perldoc.perl.org/perlstyle.html)推荐使用下划线的小写字母,只要我记得(至少回到1996年). (2认同)
  • 你在1996年还在谈论Perl 5.我开始在Perl 3.x时代学习Perl,Perl写成PERL并被认为是Awk的替代品.我当时认为没有Perl风格的手册._Llama_和_Camel_书中的大多数示例都使用了camelCasing,这是在大多数编程语言中完成的. (2认同)