當(dāng)你的程序有一定的行數(shù)時(shí),尤其是在一頁放不下時(shí),或者是你找不到發(fā)生錯(cuò)誤的原因時(shí)。
眾多的原因之一是幫你尋找因?yàn)殄e(cuò)誤拼寫造成的錯(cuò)誤。比如錯(cuò)誤使用了'$recieve_date'變量,但實(shí)際上你在程序中已聲明的是'$receive_date'變量,這個(gè)錯(cuò)誤就很難發(fā)現(xiàn)。同樣,usestrict迫使你把變量的范圍縮到最小,使你不必?fù)?dān)心同名變量在程序的其它部份發(fā)生不良作用。(盡管這是my的功能,但是如果你使用usestrict的話,它會(huì)強(qiáng)迫你用my聲明變量,來達(dá)到上述目的)。用usestrict麻煩嗎?不麻煩,只要在你的腳本的開始加上11個(gè)字符而已!(usestrict;),另外在整個(gè)程序中用my聲明變量。不錯(cuò),那我怎么用usestrict呢?在你的腳本的開頭'#!/usr/local/bin/perl'后面加上這句就行。
usestrict;得,程序出錯(cuò)了,我該怎么辦?常見的錯(cuò)誤信息一般如下:Globalsymbol"$xxx"requiresexplicitpackagenameat./tstline5.這是我們要馬上解決的錯(cuò)誤。(如果出現(xiàn)類似于'ServerError'之類的錯(cuò)誤,請(qǐng)檢查一下你的web服務(wù)器上的errorlogs,或用usewarnings;在Perl5.6版之前(或者為了不同Perl版本間的兼容),你可以用命令行參數(shù)'#!/usr/bin/perl-w'。還有一種辦法是設(shè)置$^W變量(不過,如果$^W不在BEGIN{}程序塊里的話,就沒辦法截取編譯時(shí)的錯(cuò)誤提示,所以一般我們用'-w'):#!/usr/local/bin/perl-w#或者$^W=1;#或者BEGIN{$^W=1}如果你確定不用warnings,你可以限制它的使用范圍,如:#把這段代碼:subadd_two_numbers_which_might_be_undef{$_[0] $_[1];}#根據(jù)Perl的版本不同改成下面的樣子:#1subadd_two_numbers_which_might_be_undef{#參見'perldocperllexwarn'#因?yàn)樽詈檬侵辉谀阆M牡胤浇沟魒arningnowarnings"uninitialized";$_[0] $_[1];}#2subadd_two_numbers_which_might_be_undef{local$^W;$_[0] $_[1];}或者,你應(yīng)像前面例子中聲明'$number'一樣初始化變量。你還可以參閱
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注