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

Post on 30-Dec-2015

58 views 0 download

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

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

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

Perl Perl LanguageLanguage

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. 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 ( 具跨平台

的特性 ).

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.

Installation cont. Practice.

Download ActivePerl software file. Install ActivePerl.

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

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 ; ( 字串 )

Data type in Perl cont. Practice.

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

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).

Data type in Perl cont. Practice.

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

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

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

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

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

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).

Data type in Perl cont. Practice.

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

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

Control structure in Perl cont.

If 條件判斷

If 條件成立則執行

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

If statement ( 陳述式 ).

Control structure in Perl cont. Practice.

If statement. If - else statement.

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

$#array : 取得 array 的大小

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

Control structure in Perl cont. Practice.

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

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

Like for loop.

For loop

Foreach loop

Control structure in Perl cont. Practice.

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

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

While 判斷式

Control structure in Perl cont. Practice.

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

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

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

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

Regular expression in Perl cont. 比對 .

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

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 字串內所有符合的子字串

Regular expression in Perl cont. Practice.

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