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