終於可以拿到這本大作了。正是由於翻過第二版,因此毫不猶豫的上網購買了這本小駱駝書。不過剛拿到的時候一直懷疑是不是定錯書了,因為第二版第一章寫的非常漂亮,把一個簡單的例子漸漸擴大,最後到一個1,2百行的程式。非常引入入勝,這次想重溫卻沒有機會了。第一章作者完全是在講一些perl的相關知識。只在最後列出了一個5行的小例子。雖然感覺驟然下降,不過對perl的熱情不減,還是需要從頭好好看看書來學,而不想每次寫教本都亂翻書,結果雖然可以完成任務不過總是記不住。現在下定決心了從頭來過。希望能把這本書啃完!
廢話少說,開始學習!
我也不從程式開始,先講一些學perl的人必須知道的知識。perl的發明人:Larry Wall。這是一個非常熱心的人。我一直定著Perl的maillist,常常能看到Larry Wall在回答眾多愛好者的問題,而且用語簡潔,幽默。相信訂maillist的人一定也會深受感動。並且他保證了perl將永遠免費!怎麼能不支援他和可愛的Perl呢!還需要將的是CPAN,這個Perl社區的“大賣場”。裡麵包含了Perl的一切的一切:Perl本身的原始碼、各個平台上二進位版的Perl、樣本、文檔、Perl擴充(幾乎所有Perl的模組都可以在上面找到)以及關於Perl的訊息檔案。網址是: http://www.cpan.org/ ,當然我們的linux社區也有他的鏡像網站:http://cpan.linuxforum.net/ 。還有最後一點我想羅嗦的,Perl不需要象c,c++, java那樣需要編譯後才能執行。Perl只需要讓他加上可執行許可權即可運行你的程式。好了,鋪墊就這些,比書簡潔多了^_^。
第一章有2個程式,第一個是著名的hello world。我本來不想在這兒寫出了,不過為了完整性,就把他也寫出來了:
樣本1:
#!/usr/local/bin/perl -w
print "Hello,world!/n";
非常簡單,真正的程式就一行(第二行)。第一行是每個Perl程式都需要寫的。至於perl在你的系統的哪裡,可以用which 或者whereis來尋找。一般都在/usr/bin/perl或者/usr/local/bin/perl這兩個地方。而-w是我自己的習慣。這是一個非常好的參數,他會指出你的程式哪裡不規範需要注意的地方。建議你也加上。只有好處沒有壞處^_^。第二句我想大家都能夠看得懂。(/n是換行得意思)
樣本2:
#!/usr/local/bin/perl -w
@lines = `perldoc -u -f atan2`;
foreach (@lines) {
s//w<([^>]+)>//U$1/g;
print;
}
這個例子就很有Perl得味道了。一大堆讓你頭暈得符號。不想仔細講解這個例子,因為牽涉太多後面得知識,貼出來只是為了看看程式執行得結果:看看大家得眼睛是不是夠厲害^_^。還有一點要指出得是第二行不是單引號,而是反引號,裡面可以放入shell得命令!
先來講講perldoc這條命令:它是專門用來讀出並顯示Perl得文檔、相關擴充以及工具 + 生產力。來看看perldoc -u -f atan2這條命令得執行結果:
bash-2.05$ perldoc -u -f atan2
=item atan2 Y,X
Returns the arctangent of Y/X in the range -PI to PI.
For the tangent operation, you may use the C<:tan>
function, or use the familiar relation:
sub tan { sin($_[0]) / cos($_[0]) }
最後再來看看程式執行得結果:
bash-2.05$ ./ex1-3.plx
=item atan2 Y,X
Returns the arctangent of Y/X in the range -PI to PI.
For the tangent operation, you may use the POSIX::TAN()
function, or use the familiar relation:
sub tan { sin($_[0]) / cos($_[0]) }
看出區別了吧~~~,呵呵!結合程式先理解一下吧。
第一章的習題也就是讓你感受一下這兩個例子,因此就不打出來了。以後的習題我會打出來的。