正則表達式(Regular Expression)是指定模式的一種方法,這種模式對文本進行篩選,只匹配特定的字符串。一旦匹配到了一個字符串,就可以從大量的文本中將其抽取出來,或者利用另一個字符串來替代這個字符串。其使用的格式為/pattern/,使用的匹配操作符為: =~(匹配),!~(不匹配)。Perl語言中因為有這個功能,所以對于字符串的處理能力是非常強有力的。
一.Perl簡介Perl是Practical Extractionand Report Language的編寫,它是由LarryWall設計的,主要用于UNIX環境下編程,當然目前它也是只支持Windows系統的,本文主要也是講在Windows下的Perl編程,并側重于黑客安全方面。Perl如腳本語言一般,無需經編譯器來編譯才能運行代碼,應用起來也很簡便,特別是用它來寫exploit尤為流行。
Perl 是一種能完成任務的語言。 當然,如果你的工作就是寫程序,那么從理論上來講,你可以使用任何“完整”的計算機語言來完成任務。但是從我們的經驗來看,計算機語言的區別很大程度上不在它能干什么,而是在它做事情的時候是否簡單。從一個極端來說,那些所謂的第四代語言做某些事情的時候相當容易,但是做其它一些事情的時候幾乎不可能。從另外一個極端來看,那些所謂的工業級的語言在做任何事情的時候都幾乎一樣困難。 Perl 是不同的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。
Perl 是一種能完成任務的語言。 當然,如果你的工作就是寫程序,那么從理論上來講,你可以使用任何“完整”的計算機語言來完成任務。但是從我們的經驗來看,計算機語言的區別很大程度上不在它能干什么,而是在它做事情的時候是否簡單。從一個極端來說,那些所謂的第四代語言做某些事情的時候相當容易,但是做其它一些事情的時候幾乎不可能。從另外一個極端來看,那些所謂的工業級的語言在做任何事情的時候都幾乎一樣困難。 Perl 是不同的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。 Perl 是不同的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。
本教程將與您一起學習在Unix平臺上用Perl創建CGI。和其它教程不同,我們并不假設你了解CGI、Perl或Unix。 學完本教程后,你將能夠建立Perl的計數器、留言板和處理安全口令的程序。同時你也會對Perl語言有所了解,學習使用其變量、if語句和循環。
為了便于參考,本章以字母順序(注:有時候,緊密聯系的函數在系統手冊頁里組合在一起, 因此我們在這里也將尊重那些分組。比如,要尋找 endpwent 的描述,你得先找 getpwent。) 描述內建的 Perl 函數。每個函數描述以一個該函數語法的簡短概要開頭。象 THIS 這樣的參數 名字代表實際表達式的占位符,而跟在語法概要后面的文本將描述提供(或者省略)該實際參數的 語意。 你可以把函數和文本以及變量想象成一個表達式里的項。或者你可以把它們想象成前綴操作符, 處理它后面的參數。要知道我們有一半時間叫它們操作符。
Perl 是一種能完成任務的語言。 當然,如果你的工作就是寫程序,那么從理論上來講,你可以使用任何“完整”的計算機 語言來完成任務。但是從我們的經驗來看,計算機語言的區別很大程度上不在它能干什么 ,而是在它做事情的時候是否簡單。從一個極端來說,那些所謂的第四代語言做某些事情 的時候相當容易,但是做其它一些事情的時候幾乎不可能。從另外一個極端來看,那些所 謂的工業級的語言在做任何事情的時候都幾乎一樣困難。 Perl 是不同的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處 理困難問題能力的語言。
一、進程處理函數 1、進程啟動函數 2、進程終止函數 3、進程控制函數 4、其它控制函數 二、數學函數 三、字符串處理函數 四、標量轉換函數 五、數組和列表函數 六、關聯數組函數
在工作和生活中難免有一些文件處理之類的工作需要做,不管你是在Windows下面,還是在Linux下面。當然稍微復雜一些的任務就需要利用正則表達式來完成,很不幸的是Linux shell的正則表達式不太好用,另外對正則表達式的支持也不夠好,另外需要學習grep,sed,awk等命令也是挺煩的事兒。
許多程序員憑直覺來編程,這些直覺來自于他們早期養成的習慣和風格。這樣寫出的程序似乎自然、直觀,而且看起來也很不錯。但是,如果你想嚴肅地對待程序員這份職業,那么直覺就遠遠不夠了。《Perl最佳實踐》講述了許多關于Perl語言的編程規則、使用慣例、開發標準和最佳實踐,這些內容不僅有助于程序員之間的交流和協同工作,同時也提供了一套思考問題的可靠框架和一種表述解決方案的通用語言。<br> 通過生動幽默的表達,作者Damian Conway為Perl編程人員提供了關于編程藝術的256條規則,這些規則能幫助你編寫出更好的Perl代碼。這些規則涵蓋了代碼布局和命名規則,數據和控制結構的選擇,程序解構和模塊化,接口的設計和實現,面向對象設計,錯誤處理、程序測試和調試。<br> 本書中所有的規則都是為了寫出清晰、健壯、高效、可維護和簡潔的程序而設計。Conway博士并不自詡這些規則是最廣泛和最清晰的實踐集,但實際上,本書確實提供了在實踐中被廣泛認可和應用的建議,而不是象牙塔似的編程理論。<br> 最特別的是,《Perl最佳實踐》提供的規則是實在有效的,世界各地的開發人員已經普遍使用。像Perl語言的初衷一樣,這些規則將使你的開發更加出色。
Perl 最初是當做一種 Unix 的膠水語言設計的,但是她早就移植到大多數其它操作系統里了。因為 Perl 幾乎可以在任何地方運行,所以 Perl 可以說是當今最具有移植性的編程環境。要想寫可移植的 C/C++ 程序,你得在程序里加上一大堆 #ifdef 標簽來區分不同的系統。要想寫可移植的 Java 程序,你必須理解每種新的 Java 實現的特質。要想寫可移植的 shell,你可能要記住每條命令在每種操作系統上的語法,走運的時候你可能可以找到一些公共的東西。而要想寫可移植的 Visual Basic 程序,那么你只需要對“移植”有個更靈活的定義就可以了。
Perl是Practical Extraction and Report Language的縮寫,它是由Larry Wall設計的,并由他不斷更新和維護,用于在UNIX環境下編程。 .Perl具有高級語言(如C)的強大能力和靈活性。事實上,你將看到,它的許多特性是從C語言中借用來的。 .與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程序并告訴Perl來運行而已。這意味著Perl對于小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。 .Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awd到Perl的翻譯器。 簡而言之,Perl象C一樣強大,象awk、sed等腳本描述語言一樣方便。
Perl是非常容易使用的程序語言,或者我們應該說他是方便的程序語言,你可以隨手就寫完一個Perl的程序,就像你在命令行中打一個指令一樣 (注一)。因為Perl的誕生幾乎就在于讓使用者能夠以更好方便的方式去撰寫程序碼,卻不必像寫C一樣的考慮很多細節。<br> 另外,Perl的黏性非常的強 (注二),你可以用Perl把不同的東西輕易的連接起來。而且你可以用Perl解決你大部分的問題,雖然有些時候你并不想這么做,但這并不表示Perl做不到。
Perl是Practical Extraction and Report Language的縮寫,它是由Larry Wall設計的,并由他不斷更新和維護,用于在UNIX環境下編程。.Perl具有高級語言(如C)的強大能力和靈活性。事實上,你將看到,它的許多特性是從C語言中借用來的。.與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程序并告訴Perl來運行而已。這意味著Perl對于小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。.Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awd到Perl的翻譯器。 簡而言之,Perl象C一樣強大,象awk、sed等腳本描述語言一樣方便。
Perl是Practical Extraction and Report Language的縮寫,它是由Larry Wall設計的,并由他不斷更新和維護,用于在UNIX環境下編程。 .Perl具有高級語言(如C)的強大能力和靈活性。事實上,你將看到,它的許多特性是從C語言中借用來的。 .與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程序并告訴Perl來運行而已。這意味著Perl對于小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。 .Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awd到Perl的翻譯器。 簡而言之,Perl象C一樣強大,象awk、sed等腳本描述語言一樣方便。
Perl 是一種能完成任務的語言。 當然,如果你的工作就是寫程序,那么從理論上來講,你可以使用任何“完整”的計算機語言來完成任務。但是從我們的經驗來看,計算機語言的區別很大程度上不在它能干什么,而是在它做事情的時候是否簡單。從一個極端來說,那些所謂的第四代語言做某些事情的時候相當容易,但是做其它一些事情的時候幾乎不可能。從另外一個極端來看,那些所謂的工業級的語言在做任何事情的時候都幾乎一樣困難。 Perl 是不同的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。
Perl是Practical Extraction and Report Language的縮寫,它是由Larry Wall設計的,并由他不斷更新和維護,用于在UNIX環境下編程。.Perl具有高級語言(如C)的強大能力和靈活性。事實上,你將看到,它的許多特性是從C語言中借用來的。.與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程序并告訴Perl來運行而已。這意味著Perl對于小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。.Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awd到Perl的翻譯器。簡而言之,Perl象C一樣強大,象awk、sed等腳本描述語言一樣方便。