perl 學習資料

來源:互聯網
上載者:User

轉載自:http://club.topsage.com/thread-464914-1-3.html

關於學習Perl

Perl是一門很有用的語言,可以用它來做很多事。然而,它也僅是一門語言,掌握了Perl,你只是掌握了Computer領域的一小塊知識。在學習Perl前,請明確你的學習目的,並採用正確的學習方法和資源。

(一)學習目的

你學Perl的目的是什嗎?要實現你的目的,光有Perl夠嗎?讓偶幫你分析看看。

1. 我想當一名System Administrator,並將Perl用於SA工作。

想法很好,優秀的SA,Perl能力必備。Perl自身的靈活文法,強大的Regex,良好的shell結合能力,以及CPAN的眾多模組,會使你的SA 工作如魚得水,工作量倍減。然而,SA工作的本質還在於System,也許值得你花更多時間的,是System自身穩定和安全的維護。你要學習 Unix,Linux等OS的操作,學習Apache,Sendmail,Bind,Squid,Mysql等應用配置,還要學習awk,sed等 shell script。這些中的每一樣要搞熟,都值得你付出很多努力呀。

2. 我想成為Web Programmer,並將Perl用於web development。

想法很好,請努力學習Perl。不要被一些所謂的流行概念迷惑,也不要整天費心思去想CGI什麼時候會過時。至少從偶的觀點看,有WEB的一天,CGI就永有用武之地。偶不列舉國外用CGI driver的大網站,因為那太多了。國內最大的2個Email Services Provider,Sina和網易,他們的webmail就是用CGI實現的,並且每天承擔著千萬級的訪問。

然而你也該認識到,光掌握Perl,對從事web develop來說,還是很不夠的。你要學習HTTP協議,學習HTML,XML,JavaScript等web呈現語言,學習 mod_cgi,mod_perl等Apache模組,學習SQL語句和database。甚至還要學習PHP,JAVA或.net技術,畢竟這三樣很流行,你不一定要愛好它們,但掌握了它們,在國內找工作相對有利。偶很少聽說有web development單招Perl Programmer的,這點與國外不一樣。同樣的,上述偶提到的各個方面,也需要你花很多心思去學習,而絕不是只學好Perl那麼簡單。

3. 我想成為一名Applications Programmer,將Perl用於applications development

如果是這樣,偶勸你還是先學好C/C++吧,畢竟那才是電腦語言的根本。雖然一些簡單的applications可以用Perl來編寫,雖然 Lincoin Stein先生說,他用Perl開發的WEB伺服器比Apache還快,但是,Perl開發的Program要想產品化,還有很多problems--它畢竟只是一種解釋性Script,底層的很多東西還是基於C的。要想追求高效能和產品化,為什麼不用C呢?

當然,如果你只是為自己或自己的company編寫applications,那用Perl無可厚非。偶們公司有個LOG部門,每天的工作就是分析海量資料,這用Perl來做足夠了。處理文本,Perl強過任何一門語言。然而即使這樣,該部門招人時,還是要求你會C/C++.

4. 我想做一名Perl Hacker,並為CPAN貢獻modules.

精神很可嘉,希望你能堅持下去。偶達不到這個層次,所以也不好說什麼。往這方面發展時,希望你能徹底理解OOP,理解各類引用傳遞和符號表的概念,否則也就談不上寫modules了。

(二)學習方式

如果沒有老師教的話(據偶所知,國內的University/College,很少有開Perl課程的),那麼唯一的學習方式就是多看書,多動手寫code.

1. 是要多看書,還是多看其他人的Code?

當然是前者。只有你瞭解原理了,才可靈活運用,寫出清晰的code,並形成自己的Code Style(代碼風格)。

一味的看別人的code,而不注重基礎知識,會使你迷惘而不知所措。因為這樣你所學的知識會很散亂,行不成自己的知識體系。

當然,一邊看書,一邊看別人的Code,也是好的學習方式。但請記住,你看別人的Code,是有助於你去理解書本中的基礎知識,不要本末顛倒了。

2. 剛看完了基礎書,我想看"Perl進階編程"和"Perl技術內幕"

最近在CU Forum看到很多這種topics,偶一聽到就faint。請先保證你徹底理解基礎知識了,再去看那些Books吧。曾經有人問偶關於Perl的進階 data structure,一聊之下發現他對Perl的基本reference都不甚明了,那還有什麼好談的呢?有多少人分不清楚$var與($var)的區別?又有多少人還不明白${$hash{key}}與$$hash{key}的不同?永遠不要太心急,請循序漸進來。偶的老師在Perl界也算有點名氣,他說完全掌握Perl用了3年時間。多看書,多動手,不要好高騖遠哦。

(三)學習資源

偶看過的3本書,覺得都very good,它們是"Learning Perl","Programming Perl","Network Programming with Perl".還有一本好像是"CGI
Programming with Perl",沒怎麼仔細看,就不提了。前2本是Oreilly出版的,別名大小Camel Book(駱駝書),是Perl入門和提高的經典書籍。第3本是Lincoin Stein先生的經典力作,他也是mod_cgi的開發人員,其精湛的技術令偶受益終生。這3本書好像都有中文版,去書店看看能否買到。如果你閱讀 English沒問題,那偶建議你還是閱讀原版的好。

另外,訂閱Perl Mailing List也可令你從中受益,這裡列出了所有知名的Perl Mailing List:

http://lists.cpan.org/

其中的beginners和beginners-cgi也許對你有用。modperl-user是討論mod_perl的。

網站方面:

http://learn.perl.org/  這個網站是為學習Perl的People準備的

http://perl.apache.org/docs/  這裡有mod_perl的完整Docs

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.