Created
June 17, 2010 06:22
-
-
Save shelling/441753 to your computer and use it in GitHub Desktop.
Alpaca Book
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| \documentclass{book} | |
| \usepackage{CJK} | |
| \usepackage[margin=2cm]{geometry} | |
| %% 這是一段註解 | |
| %% 連續的註解還不錯用 | |
| \begin{document} | |
| \begin{CJK}{UTF8}{bsmi} | |
| \title{Intermediate Perl} | |
| \author{ 原著 Randal L. Schwartz, brian d foy \& Tom Phoenix 翻譯 shelling } | |
| \maketitle | |
| \tableofcontents | |
| \chapter{ 簡介 } | |
| \paragraph{} | |
| 歡迎來到學習 Perl 的下一站。 | |
| 你也許是因為想寫出超過一百行的 Perl 程式而翻開這一頁,也有可能只是老闆要你這麼作。 | |
| \paragraph{} | |
| 我們的 Learning Perl 一書介紹了如何使用 Perl 寫出中小型程式( 我們發現那是大多數 Perl 程式的大小 )。 | |
| 但是,為了避免駱馬書( Llama book )變得太大而嚇到人,我們思考後小心的從中刪去許多內容,也就是本書。 | |
| \paragraph{} | |
| 接下來,你可以得到故事的結局( the rest fo the sotry ),風格仍然我們熟 | |
| 悉的駱馬書一樣不變。它會告訴你如何寫出 100 行到 1000 行的 Perl 程式。 | |
| \paragraph{} | |
| 再來,也許你已經知道如何和許多程式設計師在同一個專案中共事。那很好, | |
| 因為除非你一天工作 35 小時,在面對大專案時你一定會需要更多協助。你也 | |
| 會需要保證你的程式碼和他人的可以一起工作得很好。 | |
| \paragraph{} | |
| 本書會告訴你如何處理更大更複雜的資料結構,例如雜湊的雜湊,或是陣列的陣列。 | |
| 一旦知道一些參照的概念,你就可以處理複雜的資料結構。 | |
| \paragraph{} | |
| 還有物件導向的概念,這可以讓你的程式碼(或是他人給的程式碼)能夠再利用。 | |
| 本書也會包含這些內容,即使你之前可能沒聽過物件。 | |
| \paragraph{} | |
| 在團隊中工作另一個重要的概念是,擁有一個程式發佈週期還有單元測試和整 | |
| 合測試。你也會學到如何打包你的程式碼發佈,並為它提供一個單元測試,來 | |
| 確保你的程式碼在終端環境中可以運作。 | |
| \section{ 你應該已經知道什麼 } | |
| \section{ 註腳都寫些什麼 } | |
| \section{ 關於練習題 } | |
| \section{ 給 Perl 講師 } | |
| \chapter{ 延伸技巧 } | |
| \paragraph{ } | |
| \chapter{ 使用模組 } | |
| 模組是程式的構成區塊,提供可重複利用的子程序,變數,甚至是類別。在建 | |
| 構我們自己的模組的同時,我們會告訴你一些你會感興趣的事。我們先來看看 | |
| 如何使用別人寫好的模組。 | |
| \section{ 標準模組 } | |
| \paragraph{} | |
| Perl 發佈時隨附許多受歡迎的模組。事實上,最近的發佈版中約有 50 MB 由 | |
| 模組佔據。1996 年 10 月發佈的Perl 5.003\_07 包含了 98 個模組。2006 年 | |
| 初的現在, Perl 5.8.8 包含了 359 個 | |
| \footnote{ | |
| After you make it through this book, | |
| 你應該可以用 Module::CoreList 找出您電腦內的數量。畢竟這是我們所找出的數量。 | |
| }。 | |
| 這也是 Perl 的優點之一:它隨附許多函式庫讓你可以建構複雜的程式而不用作許多工作。 | |
| \paragraph{} | |
| 在這本書中我們會試著標示那些模組隨附於 Perl (包含他們從哪個版本的 | |
| Perl 開始隨附)。我們稱之為\textbf{核心模組}或者註明他們出現在 Perl 的 | |
| \textbf{標準發佈版}。如果你安裝 Perl,應該要擁有這些模組。因為在寫作 | |
| 這本書時我們使用 Perl 5.8.7,我們會假設這是當前的 Perl 版本。 | |
| \paragraph{} | |
| 當你開發自己的程式,你也許會思考是否可以只使用核心模組來保證所有使用者都可以使用 | |
| \footnote{ | |
| 儘管我們 | |
| }。 | |
| 我們不討論這樣做的優缺點,因為我們太愛 CPAN 而不能沒有它。 | |
| \section{ 使用模組 } | |
| \paragraph{} | |
| 幾乎所有 Perl 模組都有文件,即使我們不曉得背後的運作方式,也不用擔心如何使用這些模組提供的介面。 | |
| 那正是這些介面存在的原因:隱藏細節。 | |
| \paragraph{} | |
| 我們可以用 perldoc 來閱讀模組提供的文件。 | |
| 只要給它模組名稱,它就會輸出該模組的文件。 | |
| \begin{verbatim} | |
| $ perldoc File::Basename | |
| NAME | |
| fileparse - split a pathname into pieces | |
| basename - extract just the filename from a path | |
| dirname - extract just the directory from a path | |
| SYNOPSIS | |
| use File::Basename; | |
| ($name,$path,$suffix) = fileparse($fullname,@suffixlist) | |
| fileparse_set_fstype($os_string); | |
| $basename = basename($fullname,@suffixlist); | |
| $dirname = dirname($fullname); | |
| \end{verbatim} | |
| \paragraph{} | |
| 我們擷取了一段文件的開頭告訴你最重要的部份(至少對剛開始的你是最重要的)。 | |
| 模組文件結構通常和 Unix 手冊頁一樣,一開始都是 NAME 和 SYNOPSIS 區塊。 | |
| \paragraph{} | |
| 摘要( synopsis )給我們使用模組的範例。 | |
| 只要照著範例作,我們就可以使用這個模組。 | |
| 也就是說,我們還不必熟悉摘要中示範的 Perl 語法和技巧,我們就可以讓所有事情正常運作。 | |
| \paragraph{} | |
| 因為 Perl 混合了程序化,函式化,物件導向,和一些其他語言的特徵,Perl | |
| 模組有非常多種介面。每個模組設計可能會有輕微的不同,但是只要我們可以 | |
| 查閱文件,這就不是問題。 | |
| \section{ 函式化介面 } | |
| \paragraph{} | |
| 要載入模組,我們使用 Perl 內建命令 use。我們 | |
| \section{ 選擇性引入 } | |
| 幸運的, | |
| \chapter{ 參照 } | |
| \section{ 使用 } | |
| \chapter{ 參照和範圍 } | |
| \chapter{ 處理複雜資料結構 } | |
| \chapter{ 子程序參照 } | |
| 到目前為止,我們已經看到如何對三種 Perl 基本資料型態進行參照。現在,我們也對 subroutine 進行參照。 | |
| 為什麼我們要這麼作呢? | |
| \section {} | |
| \chapter{ 檔案處理參照 } | |
| \chapter{ 練習參照訣竅 } | |
| \chapter{ 建構大程式 } | |
| \chapter{ 物件 } | |
| \chapter{ 物件和資料 } | |
| \chapter{ 物件解構 } | |
| \chapter{ 進階物件主題 } | |
| \chapter{ Exporter } | |
| \chapter{ 寫個模組 } | |
| \chapter{ 基本測試 } | |
| \chapter{ 進階測試 } | |
| \chapter{ 發佈至CPAN } | |
| \end{CJK} | |
| \end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment