Transcript
Page 1: 生物資訊程式語言應用  Part 3

生物資訊程式語言應用生物資訊程式語言應用 Part 3Part 3

Perl Perl LanguageLanguage

Page 2: 生物資訊程式語言應用  Part 3

Outline Introduction. Installation. Background knowledge in Perl.

Data type. Control structure. Regular expression.

Overall practice.

Page 3: 生物資訊程式語言應用  Part 3

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

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

Installation cont. Practice.

Download ActivePerl software file. Install ActivePerl.

Page 6: 生物資訊程式語言應用  Part 3

Background knowledge Data type in Perl. Control structure in Perl. Regular expression in Perl.

Page 7: 生物資訊程式語言應用  Part 3

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

Data type in Perl cont. Practice.

Using scalar. Special expression. 字串與數字間的轉換 .

Page 9: 生物資訊程式語言應用  Part 3

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

Data type in Perl cont. Practice.

Using array (definition). 單數取用 . 複數取用 .

Page 11: 生物資訊程式語言應用  Part 3

Data type in Perl cont. Hash ( 雜湊 ). $ 純量 = 單一 = 單數 @ 陣列 = 串列 = 複數 % 雜湊 = 串列 = 複數

定義陣列 = 類似 ip @student=("9154610","9154611",”9154612”);

定義雜湊 = 類似 dns %students = ("Peter"=>"9154610" ,

"Mary"=>"9154611" , "Cathy"=>"9154612");

Page 12: 生物資訊程式語言應用  Part 3

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

Data type in Perl cont. Practice.

Using hash (definition). 單數取用 . 複數取用 .

Page 14: 生物資訊程式語言應用  Part 3

Control structure in Perl If statement ( 陳述式 ). For loop ( 迴圏 ). Foreach loop ( 迴圏 ). While loop ( 迴圏 ).

Page 15: 生物資訊程式語言應用  Part 3

Control structure in Perl cont.

If 條件判斷

If 條件成立則執行

若 If 條件不成立則執行 (else statement 可有可無 )

If statement ( 陳述式 ).

Page 16: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. Practice.

If statement. If - else statement.

Page 17: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. For loop ( 迴圏 ).

$#array : 取得 array 的大小

$i++ : 等同於 $i = $i + 1;$sum += $i : 等同於 $sum = $sum + $i;

Page 18: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. Practice.

For loop 迴圏 . 以 array 單數取用方式 print 出 array 複數資料 . 以 hash 單數取用方式 print 出 hash 複數資料 .

Page 19: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. Foreach loop ( 迴圏 ).

Like for loop.

For loop

Foreach loop

Page 20: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. Practice.

Foreach loop ( 迴圏 ). 以 array 單數取用方式 print 出 array 複數資料 . 以 hash 單數取用方式 print 出 hash 複數資料 .

Page 21: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. While loop ( 迴圏 ).

While 判斷式

Page 22: 生物資訊程式語言應用  Part 3

Control structure in Perl cont. Practice.

While loop ( 迴圏 ). 1+2+…+100.

Page 23: 生物資訊程式語言應用  Part 3

Regular expression in Perl 樣式 (pattern) 的表達 .

繫結符號 =~. =~ 可用來將右邊的樣式比對左邊的字串純量,成

功傳回 1 ,失敗傳回 0. 表否定則可改用 !~ 通常搭配判斷式使用 .

Page 24: 生物資訊程式語言應用  Part 3

Regular expression in Perl cont. 比對 .

$` : 代表字串中比對成功之前的部分 . $& : 代表字串中比對成功的部分 . $‘ : 代表字串中比對成功之後的部分 .

Page 25: 生物資訊程式語言應用  Part 3

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

Regular expression in Perl cont. Practice.

比對 . 字元取代 . 字串取代 .


Top Related