26
生生生生生生生生生生 生生生生生生生生生生 Part 3 Part 3 Perl Perl Language Language

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

Embed Size (px)

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 Presentation

Citation preview

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.

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