Perl開(kāi)發(fā)過(guò)程中需要注意的幾個(gè)小事項(xiàng)
本文和大家重點(diǎn)討論一下Perl開(kāi)發(fā)過(guò)程中需要注意的幾個(gè)小事項(xiàng),在用這個(gè)Perl的過(guò)程中,發(fā)現(xiàn)它其實(shí)并不是那么簡(jiǎn)單的,很龐大的一個(gè)語(yǔ)言平臺(tái),可以說(shuō)是SHELL的超級(jí)版,也可以是PHP的姊妹版。
Perl開(kāi)發(fā)過(guò)程中幾個(gè)小注意事項(xiàng)
Perl是一種腳本語(yǔ)言。最初的設(shè)計(jì)者為拉里·沃爾(LarryWall),它於1987年12月18日發(fā)表。Perl借取了C、sed、awk、shellscripting以及很多其他程式語(yǔ)言的特性。其中最重要的特性是他內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。Perl原名pearl,但是在這個(gè)語(yǔ)言官方發(fā)表前,拉里·沃爾發(fā)現(xiàn)已經(jīng)有個(gè)程式語(yǔ)言“pearl”,便將這個(gè)程式語(yǔ)言的名字改成Perl。
因?yàn)楣ぷ髟颍x開(kāi)C++一段時(shí)間了,一直用這個(gè)所謂的腳本語(yǔ)言來(lái)構(gòu)建一些CGI應(yīng)用。在用這個(gè)Perl開(kāi)發(fā)的過(guò)程中,發(fā)現(xiàn)它其實(shí)并不是那么簡(jiǎn)單的,很龐大的一個(gè)語(yǔ)言平臺(tái),可以說(shuō)是SHELL的超級(jí)版,也可以是PHP的姊妹版,說(shuō)不出的感覺(jué),反正也挺實(shí)用的。這里記錄一些小注意事項(xiàng),供自己復(fù)習(xí),也許能提醒各位有心的朋友。
1、undef,'',0在邏輯判斷式中都是表示FALSE的意思,但你可要注意,你的業(yè)務(wù)邏輯是這樣的嗎?比如$ABC=$ABC||0;$ABC=$ABC||1,通常地||可用于設(shè)置默認(rèn)值,你需要再確認(rèn)你的代碼確是描述這個(gè)邏輯嗎?我和我的同事可是幾次栽在這個(gè)地方。比如:如果用戶沒(méi)選擇或***訪問(wèn)表單,該域值為UNDEF,但里面用0表示全部了,如果想當(dāng)然就||0,那就不對(duì)了。
2、CGI模塊和查詢串的共存問(wèn)題(估計(jì)很少人會(huì)犯這個(gè)錯(cuò),即便犯了也很容易發(fā)現(xiàn))。就是你總是需要先從〈STDIN〉或ENV{'QUERY_STRING'}解析表單參數(shù)或URL參數(shù),然后初始化CGI(或加載)去讀取SESSION內(nèi)容。
3、Perl開(kāi)發(fā)過(guò)程中在傳遞多層引用關(guān)系時(shí),盡量用臨時(shí)變量來(lái)保存引用,否則可能引用出錯(cuò)。如某函數(shù)需要一個(gè)引用數(shù)組,該數(shù)組每個(gè)元素是一個(gè)數(shù)組的引用,子數(shù)組的元素又是一個(gè)HASH的引用,這時(shí)你***用兩個(gè)中間標(biāo)量來(lái)簡(jiǎn)化,否則賦值下來(lái)可不容易搞對(duì)。
4、Perl開(kāi)發(fā)過(guò)程中當(dāng)你想實(shí)現(xiàn)一些PERL本身無(wú)法實(shí)現(xiàn)的功能時(shí),比如像C/C++跟系統(tǒng)多一些接觸(類似于API功能)時(shí),請(qǐng)想到search.cpan.org,你的同行通常都做好了現(xiàn)成的模塊供你調(diào)用了.說(shuō)不出的全.
一時(shí)想不出更多了,以后慢慢補(bǔ)充吧!
本文出自“守望者的技術(shù)日記和六味生活”博客,請(qǐng)務(wù)必保留此出處http://dannyyuan.blog.51cto.com/212520/38696
【編輯推薦】
- 深入學(xué)習(xí)Perl運(yùn)算符用法
- Perl文件句柄概念詳解
- 深入學(xué)習(xí)Perl開(kāi)發(fā)工具用法
- 專家推薦 幾款常用Perl開(kāi)發(fā)工具
- windows下Perl開(kāi)發(fā)環(huán)境的安裝和配置