Perl操作符中Perl 不等于用法解析
本文和大家重點(diǎn)討論一下Perl 不等于的用法,在學(xué)習(xí)Perl語(yǔ)言的過(guò)程中,Perl操作符Perl 不等于用法值得學(xué)習(xí),希望通過(guò)本文的學(xué)習(xí)你對(duì)Perl 不等于用法有一定的了解。
Perl 不等于
$/="" 不等于undef$/
早有耳聞Perl可以簡(jiǎn)單地把一個(gè)文件一下子讀入一個(gè)變量,而且不管它是不是二進(jìn)制的.好象不止一次看到說(shuō)$/="";即可.
一直以為是這樣,直到遇到奇怪的現(xiàn)象,二進(jìn)制文件里混入了一個(gè)0x0A,這樣的BUG很難找,費(fèi)了半天勁才找到是讀入的時(shí)候就少讀了內(nèi)容.
搞不懂Perl為什么要設(shè)計(jì)成這樣,帶來(lái)便利的同時(shí)你得了解太多的細(xì)節(jié),語(yǔ)言本身的規(guī)則太過(guò)復(fù)雜.
讓Perl 不等于$/=""的效果等同于undef$/;難道不是更直觀的設(shè)計(jì)嗎.鑒于此,對(duì)Perl的使用一定要12萬(wàn)分的小心,不要把自己的程序建立在不十分了解的語(yǔ)言特性和builtin函數(shù),操作符.我***準(zhǔn)備精通的是它的正則表達(dá)式的內(nèi)容.再就是二進(jìn)制操作相關(guān)的東西:
pack/unpack函數(shù).
substr返回值作為左值的效率.
ord,chr.
int()和整數(shù)操作的規(guī)則
StringWise的位操作符號(hào)(一共4個(gè)~&|^)
用Perl操作二進(jìn)制文件需要注意的問(wèn)題
1.千萬(wàn)記得打開(kāi)一個(gè)文件后用binmode(FILE_HANDLER).Perl5.8的open可以直接指定打開(kāi)的方式.
這在UNIX系統(tǒng)下是不必的.但在windows下是必需的.
2.分析大量數(shù)據(jù)要考慮正則表達(dá)式的效率和可讀性.
關(guān)于可讀性,可以把復(fù)雜的表達(dá)式分解為多個(gè)子部分,這些子部分用qr操作符編譯.
另外就是使用x這個(gè)modifier把各個(gè)部分分開(kāi)
關(guān)于效率,就要了解一些正則表達(dá)式內(nèi)部的工作機(jī)制,比如貪婪與回溯以及(?>)斷言等.
另一個(gè)就是用o這個(gè)modifier來(lái)讓表達(dá)式只編譯一次.
3.注意它的所有除法操作都是用浮點(diǎn)的.
對(duì)策:用int()轉(zhuǎn)回來(lái).
用useinteger;nointeger........這個(gè)還不會(huì)用.
4.搞清楚Perl的數(shù)據(jù)類型與數(shù)據(jù)的機(jī)器表示之間的關(guān)系.
二進(jìn)制數(shù)據(jù)都用"\x0\x1"這樣的形式寫(xiě).
【編輯推薦】
- 解析Perl控制結(jié)構(gòu)用法
- 暢談Perl操作符用法
- 解析兩大Perl標(biāo)量的操作符
- 解析四大Perl操作符用法
- Perl基礎(chǔ) 解析Perl標(biāo)量和數(shù)組概念