Download presentation
Presentation is loading. Please wait.
1
網路與通訊 -- 實習課 PERL 程式設計
2
PERL 使用環境的建立 Windows 的使用環境建立 編輯軟體 PERL 的編譯器 記事本 Ultra editor
Power Builder PERL 的編譯器 ActivePERL
3
PERL 簡介 Perl Perl 可以做什麼呢? Practical Extraction and Report Language
實務操作抽取與報告語言 Perl 可以做什麼呢? 系統管理、網站設計、資料庫處理、文件處理、圖型使用介面、電腦病毒防治、垃圾郵件防堵、駭客入侵、網路程式設計(FTP/Webmail/Mail/DNS....)等等
4
PERL 程式的執行 命令提示字元底下 Demo (hello2.pl) 切換到 PERL 檔案存放的工作目錄 執行 “perl 檔案名稱”
perl hello.pl 加上 –w 的參數可以顯示警告訊息 perl -w hello.pl Demo (hello2.pl)
5
對 PERL 的基本認識 區分大小寫 註解使用方式 DEMO (hello3.pl) 變數名稱、函數名稱 註解符號 # 一次只能註解一行
特別用法 __END__ 表示整份程式執行到這裡就算結束了 DEMO (hello3.pl)
6
PERL 的變數型態 變數名稱 純量變數 (Scalar) 陣列變數 (Array) 雜湊變數 (Hash)
第一個字元一定是英文字或底線( _ ) 變數不需要宣告立即可以使用 純量變數 (Scalar) 變數名稱前加上 $ 字元 陣列變數 (Array) 字元 雜湊變數 (Hash) 變數名稱前加上 % 字元
7
PERL 陣列的使用 假設變數名稱為 aryTest 變數名稱前加上 @ 符號 陣列起始索引值為 0 陣列長度可自由變動
pop、push:從陣列尾端刪除、新增資料 shift、unshift :從陣列前頭刪除、新增資料 Demo (array.pl)
8
Perl 雜湊的使用 雜湊是由 Key 和 Value 所組成的一組資料 假設變數名稱為 hashTest 變數名稱前加上 % 符號
雜湊的處理 keys、values、each、exists、delete Demo (hash.pl)
9
元素值的取用 陣列變數 雜湊變數 Demo (getElement.pl) 格式:$陣列名稱[索引值]
範例:$aryTest[0], $aryTest[1], … 雜湊變數 格式:$雜湊名稱{鍵值} 範例:$hashTest{key value} Demo (getElement.pl)
10
PERL 的資料型態 數值型態 整數 浮點數 八進位數 (以 0 開頭) 十六進位數 (以 0x 開頭) 二進位數 (以 0b 開頭)
1, 0, -1, 37999 浮點數 3.1415, 4.00, 1.96E24, -3.2E-18 八進位數 (以 0 開頭) 012 (為十進位的 10) 十六進位數 (以 0x 開頭) 0x12 (為十進位的 18) 二進位數 (以 0b 開頭) 0b110 (為十進位的 6)
11
PERL 的資料型態 非數值型態 字串 null 字串是以雙引號或單引號括起來 雙引號和單引號的差別 在單引號中,跳脫符號沒有功用
在單引號中,無法做變數代換 Demo (string.pl) null
12
PERL 資料的操作 數值 非數值 Demo (dataOper.pl) 加(+)、減(-)、乘(*)、除(/)
餘數除法(%)、乘冪(**) 非數值 字串的合併:點( . )這個符號 字串的重覆:x 這個符號 Demo (dataOper.pl)
13
PERL 的函數 函數格式 函數呼叫 函數名稱規則和變數名稱規則一樣 sub function_name { statement … }
&function_name([arg1[, arg2[, …]]]);
14
PERL 的函數 (續) 參數的取得 利用 shift 指令 Demo (function.pl)
15
PERL 的函數 – 遞迴呼叫 (Recursive Call)
函數呼叫函數,而且最後一個函數又呼叫到一開始呼叫的函數,稱之為遞迴呼叫。 假設有函數 f1, f2, f3;f1 呼叫 f2,f2 呼叫 f3,f3 又呼叫到 f1。 外部遞迴 呼叫外部函數,最後又呼叫到自己,如上一個例子 內部遞迴 函數呼叫函數本身 如函數 f1,在 f1 函數中有一行是呼叫到 f1 遞迴呼叫一定要有終止遞迴的條件
16
PERL 練習作業 印出下列圖形 注意事項 作業禁止抄襲 (抄襲與被抄襲者成績都要被打折) 程式中所用到的技巧越多,加分越多
如:使用到遞迴、印出星星的深度可由呼叫者自由設定等 * *** ***** ******* ** ****
17
PERL 的檔案處理 使用到的函數指令 檔案開啟 open、sysopen、close、<> 使用open指令
常用格式:oepn (File_Handle, Expression); 範例: open(INPUT, “< list.txt”); # 唯讀模式 open(INPUT, “+< list.txt”); #讀寫模式 open(OUTPUT, “> list.txt”); # 寫入模式 … Demo (fileOper_read.pl)
18
PERL 的檔案處理 (續) 檔案開啟 使用 sysopen 指令 格式: Open_mode:檔案開啟的模式 參考網址
sysopen (File_Handle, Filename, Open_mode, Permission_mode); Open_mode:檔案開啟的模式 O_RDONLY => 唯讀 O_WRONLY => 唯寫 O_RDWR => 可讀可寫 O_APPEND => 增加資料到檔案尾端 … 參考網址
19
PERL 的檔案處理 (續) 檔案開啟 使用 sysopen 指令 Permission_mode
這個參數適用在 UNIX 的主機上 範例:0600 使用 sysopen 指令前一定要宣告所使用的程式庫 use Fcntl; Demo (fileOper_read_sysopen.pl)
20
PERL 的檔案處理 (續) 檔案關閉 檔案讀取 使用 close 指令 格式:close(File_Handle);
使用 <> 指令 = <File_Handle> 因為會直接回傳所有的檔案資料,要用陣列承接
21
PERL 的檔案處理 (續) 檔案寫入 使用 print 指令 格式:print File_Handle Data
Demo (fileOper_write.pl)
22
PERL 的正規表示法 - Regular Expression
是由字元組成的樣式(Pattern),用來比對資料,看看究竟符合或不符合這個樣式,然後可做進一步的處理。 樣式是由字元集所組成的 常用的字元集定義 . 代表任意字元,但不包括換行字元 \n * 代表比對成功的次數是 0 或 0 次以上 + 代表比對成功的次數是 1 或 1 次以上 ? 代表比對成功的次數是 0 或 1 次
23
PERL 的正規表示法 - Regular Expression (續)
樣式是由字元集所組成的 常用的字元集定義 ^ 代表字串開頭 $ 代表字串結尾 \ 將其後的字元跳脫,使其回歸原字元的涵義 如:\\ , \. , , \? , \* | 樣式中的 或 ( ) 群集 [ ] 字元類別 參考網址
24
PERL 的正規表示法 - Regular Expression (續)
樣式比對 (Pattern Match) 格式:m/Pattern/[修飾子] (簡寫成 /Pattern/[修飾子]) 修飾子 i 不計大小寫 m 視字串為多列 o 只編譯一次,以加快迴圈處理速度 s 當含有換列符號時,仍視為一列 x 允許含有註解,並忽略空白 g 全域比對
25
PERL 的正規表示法 - Regular Expression (續)
樣式比對 (Pattern Match) 使用的指令 =~ 表示比對符合 !~ 表示比對不符合 $& 代表最後一次成功比對的字串 $` 代表比對到的字串之前半段所有字串 $’代表比對到的字串之後半段所有字串 Demo (regular_match.pl)
26
PERL 的正規表示法 - Regular Expression (續)
樣式取代 (Pattern Substitution) 格式:s/Pattern/New String/[修飾子] 修飾子: 樣式比對中的修飾子都可在此使用 e 代表將欲置換的字串視為一運算式 Demo (regular_substitution.pl)
27
PERL 的正規表示法 - Regular Expression (續)
樣式轉換 (Pattern Transfer) 格式:tr/Pattern/New String/[修飾子] 修飾子: d 刪除字元 c 將不在指定字元集中的字元(包括換行字元) 換成欲轉換的字元集 s 將重覆字元刪除 Demo (regular_transfer.pl)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.