關於Perl的自學教程:前端
(Perl,一種功能豐富的計算機程序語言,運行在超過100種計算機平臺上,適用普遍,從大型機到便攜設備,從快速原型建立到大規模可擴展開發。)web
優勢shell
Perl追求的是簡單, 解決一個通常的問題用它幾行代碼就完成了. 一個稍複雜一點的問題代碼也不會超過一屏! 在軟件測試中,Perl一般是很是重要的角色。通常一個測試通用函數庫就要分十幾個文件,甚至更多,包含多達上千個定製功能。而這些函數將在主函數運行時,不定數量的被調用。幾乎能夠說,一切自動過程都是由Perl本身完成的,可見其功能的強大和在當今計算機技術高速發展的時期仍然發揮着重要的做用。 Perl 最初是當作一種 Unix 的腳本語言設計的,可是它早就移植到大多數其它操做系統裏了。由於 Perl 幾乎能夠在任何地方運行,因此 Perl 能夠說是當今最具備移植性的編程環境;要想寫可移植的 C/C++ 程序,你得在程序里加上一大堆 #ifdef 標籤來區分不一樣的系統;要想寫可移植的 Java 程序,你必須理解每種新的 Java 實現的特質;要想寫可移植的shell,你可能要記住每條命令在每種操做系統上的語法,走運的時候你可能能夠找到一些公共的東西;要想寫可移植的 Visual Basic 程序,須要對「移植」有個更靈活的定義。 讓咱們很高興的是 Perl 避免了全部這些問題,同時還保留了這些語言中的許多優勢,同時還有一些本身的特點。Perl 的特點來自許多方面:它的特性集的工具,Perl 社區的創造性,以及開源運動的大環境。不過,許多這些特性都是混合的東西;Perl 的身世複雜,它老是把事物當作是優勢的不一樣方面,而不是弱點。Perl 是「背黑鍋我來」的語言。若是你以爲本身陷入一團亂麻之中,很是渴望自由,那麼請使用 Perl。 Perl 是跨文化的。Perl 的爆炸性增加很大程度上是由於那些前 Unix 系統程序員的渴望,他們但願從他們的「老家」帶着儘量多的東西。對於他們而言,Perl 是可移植的 Unix 文化蒸餾器,是"此路不通"的沙漠中的綠洲。從另一個角度來看,Perl 還能夠從另一個方向運轉:在 Windows 上工做的 web 設計者一般會很是開心地發現他們的 Perl 程序能夠不加修改地在 Unix 服務器上跑。 儘管 Perl 在系統程序員和 web 設計師中間很是流行,但這只是由於是他們最先發現 Perl 的,Perl 能夠用於更普遍的用途。從 Perl 最先的文本處理語言開始,它已經發展成爲一種很是複雜的,通用的編程語言,以及完整的開發環境,包括調試器,調節器,交叉引用,編譯器,庫,語法提示編輯器,以及全部其它「真正」的編程語言所具備的全部掛勾,只要你須要。固然這些東西都是讓咱們可能處理難的問題的東西,並且不少其它語言也能夠作到這一點。Perl 之因此成爲 Perl 是由於它歷來不會由於保持簡單事情簡單化而丟失其餘方面的特性。 由於 Perl 既強大又好用,因此它被普遍地用於平常生活的方方面面,從宇航工程到分子生物學,從數學到語言學,從圖形處理到文檔處理,從數據庫操做到網絡管理。不少人用 Perl 進行快速處理那些很難分析或轉換的大批量數據,無論你是處理 DNA 序列,網頁,仍是豬肚皮的將來都無所謂。實際上,在 Perl 社區有一個笑話就是,下次股市大崩盤就頗有多是哪一個傢伙寫的腳本里頭有bug形成的。(不過,樂觀點來看就是,任何還在失業的股票分析師仍然有能夠利用的技巧。) Perl 的成功有許多緣由。Perl 早在開源軟件的名字出現以前就已是一個成功的開源項目了。Perl 是自由的,並將永遠自由下去。你能夠在任何合適的場合使用 Perl,只須要遵照一個很是自由的版權就能夠了。若是你在從事商業活動而且還想使用 Perl,那麼用就是了。你能夠把 Perl 嵌入到你寫的商業軟件中而不須要支付任何費用也沒有任何限制。若是你碰上一個 Perl 社區解決不了的問題,那你也還有最後的一招:源程序自己。 Perl 社區不會在「升級」的假裝下租給你它們的商業祕密。並且 Perl 社區也不會「停業 」,更不會讓你孤立無援。 Perl 是自由軟件這一點無疑對它是有幫助的。但這一條並不足以解釋 Perl 現象,由於許多自由軟件包沒有能繁榮起來。Perl 不只自由;並且好玩。人們以爲本身在 Perl 裏能夠有創造力,由於它們有表達的自由:他們能夠選擇是爲計算機速度優化仍是爲程序員的速度優化,是冗長仍是簡潔,是選擇可讀性仍是可維護性,或者選擇複用性,移植性,接受性和傳授性等等。假如你進入一次模糊的 Perl 比賽,甚至你還能夠爲模糊性作優化。 Perl 能夠給予你全部這些自由,由於它是一門有着分裂人格的語言。Perl 同時是很簡單而且很富有的語言。Perl 從其它地方拿來好主意,而後把它們安裝到易用的框架裏面。對於只是喜歡她的人來講,Perl 是實用抽取和報表語言(Practical Extractoin and Report Language)。對那些熱愛她的人而言,她是變態電子垃圾製造者(Pathologically Electric Rubbish Lister)。在少數人眼裏,Perl 是毫無心義的重複練習。不過世界須要一點點冗餘。精簡主義者老是想把事物分隔開。而咱們則老是企圖把它們合併到一塊兒。 Perl 之因此是簡單的語言是有不少緣由的。好比你用不着知道什麼特殊的指令就能夠編譯 Perl 程序--只要把它當作批處理或者 shell 腳本執行就能夠了。Perl 的類型和結構很容易使用和理解。Perl 對你的數據沒有任何限制--你的字串和數組能夠要多長就多長(只要你有足夠的內存),並且它們都會自動增加。Perl 不會強迫你學習新的語法和語意,Perl 改從許多其它你已經熟悉的語言裏(好比 C, awk, BASIC 和 Python, 英文,希臘語等)借來語法。實際上,任何程序員均可以從書寫良好的 Perl 代碼段中讀懂它的含義。 最重要的是,你不用先學習全部 Perl 的東西就能夠開始寫有用的程序。你能夠寫很小的 Perl 程序。你也能夠象小孩那樣寫 Perl 程序,咱們保證不會笑話你。或者更準確地說是,咱們毫不會笑話小孩作事情的創造性。Perl 裏的許多觀點都是從天然語言中借來的,其中一條最好的觀點就是隻要你能把本身的意思表述清楚,那麼你就可使用這些語言的一個子集。Perl 文化能夠接受任何熟練程度的成員。咱們不會在你背後放個語言警察。若是你的老闆不炒你,並且你的 Perl 腳本也能完成工做,那麼它就是「正確」的。 儘管 Perl 很簡單,但它仍然是一種特性很豐富的語言,若是你想用那些特性的話,那你就要學習一些東西。這也是把難題變簡單的學費。雖然你要想把全部 Perl 能作的事情吸取還須要一些時間,但到你須要這些功能的時候你就會很是開心地發現 Perl 已經能夠作這些事情了。 因爲 Perl 的繼承性,就算它只是用作數據概括語言的時候也有豐富的特性,Perl 一開始就設計成能夠瀏覽文件,掃描大量文本而且生成動態數據以及打印出這些數據的良好格式化的報表。不過,隨後 Perl 就開始風行,因而它就成了能夠操做文件系統,進程管理,數據庫管理,進行 C/S 編程和安全編程,web 信息管理,甚至能夠進行面向對象和麪向功能的編程的語言。並且這些功能並不是只是在 Perl 這邊,每種新功能都和其它東西交流得很好,別忘了 Perl 從一開始就是設計成膠水語言的。 並且 Perl 並不只僅只能黏合它本身的特性。Perl 是設計成能夠用模塊擴展的語言。你能夠用 Perl 快速設計,編寫,調試和部署 Perl 應用,而且你還能夠在須要的時候很方便地擴展這些應用。你能夠在其它語言裏嵌入 Perl,並且你也能夠在 Perl 裏嵌入其它語言。經過模塊輸入機制,你能夠把這些外部的擴展當作內置於 Perl 的特性。那些面向對象的外部庫在 Perl 內部仍然保持面向對象的特徵。 Perl 還在許多其它方面協助你。和嚴格的每次執行一條命令的命令文件和 shell 腳本不一樣的是,Perl 先把你的程序快速編譯成一種內部格式。和其它任何編譯器同樣,這個時候還進行各類優化,同時把碰到的任何問題反饋給你。一旦 Perl 的編譯器前端對你的程序表示滿意了,它就把這些中間代碼交給解釋器執行(或者是給其它的能生成 C 或者字節碼的模塊後端)。聽起來挺複雜,不過 Perl 的編譯器和解釋器幹這些活效率至關高,咱們的編譯-運行-修改的過程幾乎都是以秒計。再加上 Perl 的許多其餘開發特性,這種快速的角色轉換很適合作快速原型設計。而後隨着你的程序的成熟,你能夠逐步擰緊身上的螺母,減小散漫加強紀律。若是你作得好,Perl 也能幫你這個忙。 Perl 還能夠幫你寫更安全的程序。除了其它語言提供的典型的安全接口以外,Perl 還經過一種跟蹤數據的機制給你提供預防意外安全錯誤的保護,這樣就能夠在災害發生以前預防其發生。最後,Perl 還可讓你設置一個特殊的防禦隔段運行那些來源不明的 Perl 代碼,以此來杜絕危險操做。 不過,偏執一點兒說,Perl 幫你的大部份內容和 Perl 自己沒有什麼關係,而是和使用 Perl 的人有關。坦率地說,Perl 社區的人們能夠說是地球上最熱心的人了。若是 Perl 運動裏面有那麼一點點宗教色彩的話,那麼這就是它的核心了。Larry 但願 Perl 社區像一小片天堂那樣運轉,目前看來他的願望基本上是實現了。咱們也請你爲此作出本身的努力。 Perl之因此強大, 是由於有CPAN, CPAN上面有無數的開源模塊, 從科學計算到桌面應用到網絡等等各個方面都有大量的模塊! 而且世界上也還有無數的人在向上面添加模塊! 若是你想要用PERL實現某功能, 不用本身作, 在CPAN上面搜一搜, 多半都會獲得已有的結果! CPAN("the Comprehensive Perl Archive Network"全面的 Perl 存檔網絡)是查找任何 Perl 有關的東西的中心倉庫。它包含從整個 Perl 社區收集來的智慧:成百上千的 Perl 模塊和腳本,至關於好幾本書的文檔,以及整個 Perl 發佈。若是有東西是用 Perl 寫的,並且這個東西頗有用並且是自由的,那麼它頗有可能就在 CPAN 上。數據庫
缺點編程
也正是由於Perl的靈活性和「過分」的冗餘語法,也所以得到了write-only的「美譽」,由於許多Perl程序的代碼使人難以閱讀,實現相同功能的程序代碼長度能夠相差十倍百倍。但Perl一樣能夠將代碼書寫得像Python或Ruby等語言同樣優雅。 不少時候,perl.exe進程會佔用不少的內存空間,雖然只是一時,可是感受很差。後端
更多精品課程:數組
7天玩轉雲服務器安全
雲數據庫Redis版使用教程服務器
玩轉雲存儲對象存儲OSS使用入門
阿里雲CDN使用教程
負載均衡入門與產品使用指南
阿里雲大學官網(阿里雲大學 - 官方網站,雲生態下的創新人才工場)