跳轉至內容

Perl 程式設計/練習 3

來自華夏公益教科書

讀取和寫入檔案

[編輯 | 編輯原始碼]

編寫一個程式來讀取磁碟上的檔案,並將其儲存為一個新的文字檔案。(確保你沒有處理重要的文件!)嘗試下載一個公共領域的書籍 [1] 來測試你的程式如何處理大型文字檔案。

使用正則表示式搜尋文字

[編輯 | 編輯原始碼]

修改你的程式,使其只複製以“Chapter 1”或其他類似識別符號開頭的文字行。嘗試識別每個章節號,並對其進行一些簡單的數學運算。顯示書籍中的章節數量,以及每個章節包含的行數。

在文字中加入一個正則表示式來搜尋重複出現的單詞。使其即使單詞的大小寫不同也能找到重複出現的單詞。

嘗試搜尋以“de”開頭,以母音結尾的單詞。編寫一個搜尋以識別文字中的數字,無論它們是否有小數點、負號等。如果你願意,你也可以嘗試找到以文字形式寫出的數字。

在你選擇的書籍中,有多少個不同的專有名詞?有多少個問題?

進行搜尋和替換

[編輯 | 編輯原始碼]

修改檔案複製程式,使其搜尋每個單詞的例項,並在輸出檔案中將其替換為另一個單詞。檢查程式是否正確執行。你是否信任它來處理重要的文件?

編寫一個程式來將每個句子的首字母大寫,並對其進行測試。確保它不會被數字、縮寫和標題中的句號所誤導。

編寫一個程式來搜尋書籍中的數字,並將每個數字加 10。編寫一個程式來搜尋括號中的表示式(10+3/2),並將它們替換為結果(11.5)。檢查它在表示式中寫入(print "hello";)程式碼時是否不會做任何危險的事情。

對程式進行基準測試

[編輯 | 編輯原始碼]

使用 Time::HiRes 模組或基準測試模組,修改你的程式之一,以顯示執行時間。

嘗試使用基準測試系統來確定你的程式中哪一行程式碼執行時間最長。哪一行程式碼執行次數最多?

將所有內容整合在一起

[編輯 | 編輯原始碼]

編寫一個程式,它搜尋目錄中與提供的正則表示式匹配的檔案。顯示在特定目錄集中執行程式所花費的時間。

修改程式,使其搜尋目錄樹,而不僅僅是一個目錄。

測試不同的搜尋請求如何影響搜尋所需的時間。看看你是否能找到一個永遠不會結束的正則表示式(按下 ctrl-c 停止一個繁忙的 Perl 程式)。然後嘗試重寫該正則表示式,以更快地完成相同的任務。

答案

上一練習 | 下一練習

華夏公益教科書