我有一些包方法很多单词如entriesoncurrentpage,如果我按照Perl样式建议我应该这样做:
sub entries_on_current_page {...}
sub entriesOnCurrentPage {...}
和Windows风格应该是:
sub EntriesOnCurrentPage {...}
PHP有时使用带有下划线的全部小写,如MysqL_real_escape_string(),有时使用全部小写但没有下划线,如htmlspecialchars,当然PHP函数名称不区分大小写,因此Perl不支持此功能.
所以问题是,对于有很多词的长名称,用于Perl编码的最佳样式是什么.
解决方法
后来,Damian Conway的书Perl Best Practices建议使用下划线而不是骆驼外壳.达米安认为它增加了可读性,而且输入的难度也不大.
达米安康威关于名字的建议成为标准,因为1).他是对的.它更易读,并且输入的难度也不大,最重要的是2).它被纳入Perltidy.Perltidy是一个程序,可以根据Damian的建议帮助标准化您的代码. Perltidy很像Java中的CheckStyle.
这些任意标准吗?是的,所有标准都有些武断.您有一些候选人的规则建议,您必须做出决定:
> while循环中的花括号和if语句是否应附加在行的末尾,或者在while或if语句下.在标准的C风格中,花括号被拥抱.在Java中,他们并不认为是CheckStyle的.在Kornshell,然后在if下.在Bash中,现在的标准是,即使Bash解释器不喜欢它,它们也会在同一行上. (你必须在then之前添加一个分号,因为它被认为是一个单独的命令.
>如何进行变量名称.在大多数语言中,CamelCase规则.在.NET中,您甚至可以将第一个字符大写,但在Perl中,我们使用下划线.
>常量应该全部大写吗?大多数语言都同意这一点.但是,在shell脚本中,通常会为特殊环境变量保留所有大写变量名,例如$PWD,$PATH等.因此,在Bash和Kornshell脚本中,常量变量都是像常规变量一样的camelCased.
我们的想法是遵循该语言的标准.为什么?因为标准是这样说的.因为你不能和The Standard一起争论,因为你可以和你的程序员一起讨论花括号是否拥抱.这主要是要意识到大多数标准可能有点武断,但它们并不会真正影响你的编程方式.每个遵循标准的人都可以更容易理解其他人的代码.