生物資訊程式語言應用 part 3
DESCRIPTION
生物資訊程式語言應用 Part 3. Perl Language. Outline. Introduction. Installation. Background knowledge in Perl. Data type. Control structure. Regular expression. Overall practice. Introduction. Perl is free software. Larry Wall (He is a linguist). The history of Perl language. 1987- Perl 1.0. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/1.jpg)
生物資訊程式語言應用生物資訊程式語言應用 Part 3Part 3
Perl Perl LanguageLanguage
![Page 2: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/2.jpg)
Outline Introduction. Installation. Background knowledge in Perl.
Data type. Control structure. Regular expression.
Overall practice.
![Page 3: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/3.jpg)
Introduction Perl is free software. Larry Wall (He is a linguist). The history of Perl language.
1987- Perl 1.0. 1994 - Perl 5 (contain OOP).
OOP (object oriented programming) 物件導向程式語言 Perl 5.8.0 – support unicode. 2003 – Perl 6. Now.
Characteristic. The script language base on C language ( 具跨平台
的特性 ).
![Page 4: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/4.jpg)
Installation Perl is the default language in any distribution
of Linux.
Perl can be executed and worked by the ActivePerl package in windows platform. http://www.activestate.com/activeperl/
How to edit Perl program? Notepad in windows, UltraEdit and any text editor.
![Page 5: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/5.jpg)
Installation cont. Practice.
Download ActivePerl software file. Install ActivePerl.
![Page 6: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/6.jpg)
Background knowledge Data type in Perl. Control structure in Perl. Regular expression in Perl.
![Page 7: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/7.jpg)
Data type in Perl Like English
Scalar ( 純量變數 ) – 比喻單件事物 . 數字常數 $x = 5; 字串常數 $y = “Hello” ;
The special expression of Perl. Print “Hello” . ”World” ; (Hello World). Print “Hello” * 2 ; (HelloHello).
字串與數字間的轉換 $x = 123; $y = “456”; Print $x + $y ; ( 數字 ) Print $x . $y ; ( 字串 )
![Page 8: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/8.jpg)
Data type in Perl cont. Practice.
Using scalar. Special expression. 字串與數字間的轉換 .
![Page 9: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/9.jpg)
Data type in Perl cont. Array ( 陣列 ).
The definition of Array in Perl. @student=("9154610","9154611",”9154612”); my @student; $student[0] ="9154610“; $student[1] =“9154611“;
$student[2] =“9154611”;
Array 單數的取用 . print $student[0],"\n"; print "$student[1]\n"; print $student[2]."\n";
Array 複數的取用 . print @student,“\n”; ( 全部一起 print 出來 ) 以單數取用方式 print 出複數資料 (in control structure chapter).
![Page 10: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/10.jpg)
Data type in Perl cont. Practice.
Using array (definition). 單數取用 . 複數取用 .
![Page 11: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/11.jpg)
Data type in Perl cont. Hash ( 雜湊 ). $ 純量 = 單一 = 單數 @ 陣列 = 串列 = 複數 % 雜湊 = 串列 = 複數
定義陣列 = 類似 ip @student=("9154610","9154611",”9154612”);
定義雜湊 = 類似 dns %students = ("Peter"=>"9154610" ,
"Mary"=>"9154611" , "Cathy"=>"9154612");
![Page 12: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/12.jpg)
Data type in Perl cont. Hash ( 雜湊 ). 定義雜湊 = 類似 dns
%students = ("Peter"=>"9154610" , "Mary"=>"9154611" , "Cathy"=>"9154612");
Hash 單數的取用 . print $students{"Peter"},"\n"; print $students{"Mary"},"\n"; print $students{"Cathy"},"\n";
Hash 複數的取用 . print %students,"\n"; 以單數取用方式 print 出複數資料 (in control structure
chapter).
![Page 13: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/13.jpg)
Data type in Perl cont. Practice.
Using hash (definition). 單數取用 . 複數取用 .
![Page 14: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/14.jpg)
Control structure in Perl If statement ( 陳述式 ). For loop ( 迴圏 ). Foreach loop ( 迴圏 ). While loop ( 迴圏 ).
![Page 15: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/15.jpg)
Control structure in Perl cont.
If 條件判斷
If 條件成立則執行
若 If 條件不成立則執行 (else statement 可有可無 )
If statement ( 陳述式 ).
![Page 16: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/16.jpg)
Control structure in Perl cont. Practice.
If statement. If - else statement.
![Page 17: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/17.jpg)
Control structure in Perl cont. For loop ( 迴圏 ).
$#array : 取得 array 的大小
$i++ : 等同於 $i = $i + 1;$sum += $i : 等同於 $sum = $sum + $i;
![Page 18: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/18.jpg)
Control structure in Perl cont. Practice.
For loop 迴圏 . 以 array 單數取用方式 print 出 array 複數資料 . 以 hash 單數取用方式 print 出 hash 複數資料 .
![Page 19: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/19.jpg)
Control structure in Perl cont. Foreach loop ( 迴圏 ).
Like for loop.
For loop
Foreach loop
![Page 20: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/20.jpg)
Control structure in Perl cont. Practice.
Foreach loop ( 迴圏 ). 以 array 單數取用方式 print 出 array 複數資料 . 以 hash 單數取用方式 print 出 hash 複數資料 .
![Page 21: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/21.jpg)
Control structure in Perl cont. While loop ( 迴圏 ).
While 判斷式
![Page 22: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/22.jpg)
Control structure in Perl cont. Practice.
While loop ( 迴圏 ). 1+2+…+100.
![Page 23: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/23.jpg)
Regular expression in Perl 樣式 (pattern) 的表達 .
繫結符號 =~. =~ 可用來將右邊的樣式比對左邊的字串純量,成
功傳回 1 ,失敗傳回 0. 表否定則可改用 !~ 通常搭配判斷式使用 .
![Page 24: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/24.jpg)
Regular expression in Perl cont. 比對 .
$` : 代表字串中比對成功之前的部分 . $& : 代表字串中比對成功的部分 . $‘ : 代表字串中比對成功之後的部分 .
![Page 25: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/25.jpg)
Regular expression in Perl cont. 字元取代 .
$var =~ tr/xxx/yyy/ 把變數 $var 內的 xxx 字元都逐一代換成 yyy 字元
字串取代 . $var =~ s/xxx/yyy/ 把變數 $var 內的第一個 xxx 子字串整個代換成 yyy
子字串
$var =~ s/xxx/yyy/ig I : 忽略大小寫 g : 取代 $var 字串內所有符合的子字串
![Page 26: 生物資訊程式語言應用 Part 3](https://reader036.vdocuments.net/reader036/viewer/2022081418/56812a45550346895d8d7a39/html5/thumbnails/26.jpg)
Regular expression in Perl cont. Practice.
比對 . 字元取代 . 字串取代 .