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