Perl編程格式指南
本文和大家重點(diǎn)討論一下Perl編程格式方面的內(nèi)容,Perl是一種編程語(yǔ)言,掌握了Perl編程格式你就會(huì)在使用Perl語(yǔ)言進(jìn)行編程的過(guò)程中保持程序結(jié)構(gòu)的嚴(yán)謹(jǐn)和美觀,相信本文介紹能讓你學(xué)到很多知識(shí)。
Perl編程格式指南
名稱
P5EEx::Blue::perlstyle-P5EE樣式指導(dǎo)P5EE是Perl5EnterpriseEnvironment(企業(yè)型Perl5樣式指導(dǎo))的縮寫。
Perl編程格式介紹
在P5EE發(fā)行版中,包含的所有代碼和文件都遵循了本文所述的樣式。請(qǐng)注意:這些樣式并不是要抑制你的創(chuàng)造力,而是想要使那些閱讀到你代碼的家伙們的生活變得更容易一些。他也可以用來(lái)解決分歧,避免個(gè)人間糾紛。下面的這些約定適用于perl模塊,web程序(CGI/mod_perl)以及命令行程序。當(dāng)然,這些規(guī)則也在一定程度上適用于用P5EE寫的perl代碼。
注意,這些都是指導(dǎo)性的方針,不是必須遵守的規(guī)則。如果在這里你真的需要違反其中一條的話,無(wú)論如何,***先問(wèn)問(wèn)P5EE核心團(tuán)隊(duì)。另外,本文檔中的大部分,并不是強(qiáng)調(diào)正確的方法就是我們的方法。我們需要有一些約定來(lái)讓每個(gè)人的生活更容易一些。如果你有什么問(wèn)題,可以在P5EE開發(fā)郵件列表中詢問(wèn),p5ee@perl.org.http://lists.perl.org/showlist.cgi?name=p5eeP5EE項(xiàng)目所需文件在下面這些網(wǎng)站上可以找到。http://p5ee.perl.org/http://www.officevision.com/pub/p5ee本文檔將隨時(shí)間不斷更新,每份***的文檔結(jié)尾,都會(huì)有歷次版本的變動(dòng)記錄。
Perl編程格式之Perl編碼規(guī)則
Perl版本
我們是在perl5.005_03上編寫所有代碼的。也許有一天我們應(yīng)該利用以下perl5.6的特性。不管怎樣,所有代碼應(yīng)該在perl5.005_03以及后續(xù)版本上都能運(yùn)行。P5EE所有的核心代碼都在perl5.005_03和perl5.6.0上測(cè)試過(guò),雖然現(xiàn)在P5EE用在perl5.6上比較多。
Perl編程格式之文檔
所有的模塊文檔都應(yīng)參照模塊模板文件中的POD例子來(lái)撰寫,解釋模塊的方法,目的,用途和每個(gè)帶有名字,描述,輸入,輸出,受影響因素等信息的公用API。文檔中,如果需要返回一個(gè)數(shù)組或哈希表的引用,要記錄數(shù)組的大?。òㄇ‘?dāng)?shù)孛枋雒總€(gè)元素都是什么)和哈希表中每個(gè)鍵的名字。如果是復(fù)合數(shù)據(jù)結(jié)構(gòu)的話,盡量描繪出合適的結(jié)構(gòu)。另外,在文檔中還要記錄出返回?cái)?shù)據(jù)是什么類型的數(shù)值。是整型,還是一段HTML代碼,還是一個(gè)布爾值?所有命令行程序的選項(xiàng)都要使用命令行程序樣本文件中的代碼來(lái)記錄。每個(gè)有效的方法,switch結(jié)構(gòu)等等都要被記錄,連同方法的描述,目的,程序如何使用。不要嘗試對(duì)不同目的的程序使用相同的選項(xiàng)。對(duì)于所有的WEB程序,應(yīng)當(dāng)在程序注釋段中說(shuō)明功能,目的和使用。任何外部文檔,命令行程序和模塊的文檔都要寫成POD樣式。這樣的話,我們就可以把它們通過(guò)多種pod2xxx的轉(zhuǎn)換器轉(zhuǎn)換成各種格式的其他文檔。
POD不是一種正規(guī)的標(biāo)簽語(yǔ)言,它只是一種可以讓文檔非常容易轉(zhuǎn)換成其他格式的方法。如果你有什么問(wèn)題的話,可以自己看一下Perl自帶的perlpod幫助頁(yè)或者詢問(wèn)我們及其其他懂POD的人。Perl中國(guó)推廣組的FPC里面,也有一篇[[fayland]]所寫的關(guān)于[[如何撰寫POD]]的文章。
Perl編程格式之版本
分別使用模塊,web程序,命令行程序樣本文件中版本的代碼。模塊中的$VERSION將會(huì)反映出CVS的版本。Makefile.PL文件應(yīng)該包含版本描述,并且還應(yīng)該不依賴于CVS倉(cāng)庫(kù)中任何一個(gè)單獨(dú)文件的版本。同樣,擁有$VERSION的XS模塊也會(huì)反映出發(fā)行版的版本,否則每當(dāng)你對(duì)文件做了一點(diǎn)改動(dòng),你都需要重新編譯那些已經(jīng)共享的庫(kù)。這對(duì)于從事開發(fā)工作中的人來(lái)講,的確是一種痛苦。我們的發(fā)行版本號(hào)使用tuples模式,***個(gè)數(shù)字是主修訂號(hào),第二個(gè)數(shù)字是版本號(hào),第三個(gè)數(shù)字是子版本號(hào)。Odd-numbered版本號(hào)是開發(fā)版本。例如:
【編輯推薦】