1、生物資訊程式語言應用 Part 3 Part 3Perl Language 1/26OutlineIntroduction.Installation.Background knowledge in Perl.Data type.Control structure.Regular expression.Overall practice.2/26IntroductionPerl is free software.Larry Wall(He is a linguist).The history of Perl language.1987-Perl 1.0.1994-Perl 5(contain OO
2、P).OOP(object oriented programming)物件導向程式語言Perl 5.8.0 support unicode.Perl 6.Now.Characteristic.The script language base on C language(具跨平台特征).3/26Installation Perl is the default language in any distribution of Linux.Perl can be executed and worked by the ActivePerl package in windows platform.http
3、:/ to edit Perl program?Notepad in windows,UltraEdit and any text editor.4/26Installation cont.Practice.Download ActivePerl software file.Install ActivePerl.5/26Background knowledgeData type in Perl.Control structure in Perl.Regular expression in Perl.6/26Data type in PerlLike EnglishScalar(純量變數)比喻單
4、件事物.數字常數$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;(字串)7/26Data type in Perl cont.Practice.Using scalar.Special expression.字串與數字間轉換.8/26Data type in Perl cont.Array(陣列).The defini
5、tion of Array in Perl.student=(9154610,9154611,”9154612”);my student;$student0=9154610“;$student1=“9154611“;$student2=“9154611”;Array 單數取用.print$student0,n;print$student1n;print$student2.n;Array 複數取用.print student,“n”;(全部一起print出來)以單數取用方式print出複數資料 (in control structure chapter).9/26Data type in Per
6、l cont.Practice.Using array(definition).單數取用.複數取用.10/26Data type in Perl cont.Hash(雜湊).$純量=單一=單數陣列=串列=複數%雜湊=串列=複數定義陣列=類似ipstudent=(9154610,9154611,”9154612”);定義雜湊=類似dns%students=(Peter=9154610,Mary=9154611,Cathy=9154612);11/26Data type in Perl cont.Hash(雜湊).定義雜湊=類似dns%students=(Peter=9154610,Mary=91
7、54611,Cathy=9154612);Hash 單數取用.print$studentsPeter,n;print$studentsMary,n;print$studentsCathy,n;Hash 複數取用.print%students,n;以單數取用方式print出複數資料 (in control structure chapter).12/26Data type in Perl cont.Practice.Using hash(definition).單數取用.複數取用.13/26Control structure in PerlIf statement(陳述式).For loop(迴
8、圏).Foreach loop(迴圏).While loop(迴圏).14/26Control structure in Perl cont.If 條件判斷條件判斷If 條件成立則執行條件成立則執行若若If 條件不成立則執行條件不成立則執行(else statement可有可無可有可無)If statement(陳述式).15/26Control structure in Perl cont.Practice.If statement.If-else statement.16/26Control structure in Perl cont.For loop(迴圏).$#array:取得取得a
9、rray大小大小$i+:等同於等同於$i=$i+1;$sum+=$i:等同於等同於$sum=$sum+$i;17/26Control structure in Perl cont.Practice.For loop 迴圏.以array單數取用方式print出array複數資料.以hash單數取用方式print出hash複數資料.18/26Control structure in Perl cont.Foreach loop(迴圏).Like for loop.For loopForeach loop19/26Control structure in Perl cont.Practice.For
10、each loop(迴圏).以array單數取用方式print出array複數資料.以hash單數取用方式print出hash複數資料.20/26Control structure in Perl cont.While loop(迴圏).While 判斷式判斷式21/26Control structure in Perl cont.Practice.While loop(迴圏).1+2+100.22/26Regular expression in Perl樣式(pattern)表達.繫結符號=.=可用來將右邊樣式比對左邊字串純量,成功傳回1,失敗傳回0.表否定則可改用!通常搭配判斷式使用.23
11、/26Regular expression in Perl cont.比對.$:代表字串中比對成功之前部分.$&:代表字串中比對成功部分.$:代表字串中比對成功之後部分.24/26Regular expression in Perl cont.字元取代.$var=tr/xxx/yyy/把變數$var 內 xxx 字元都逐一代換成 yyy 字元字串取代.$var=s/xxx/yyy/把變數$var 內第一個 xxx 子字串整個代換成 yyy 子字串$var=s/xxx/yyy/igI:忽略大小寫g:取代$var 字串內全部符合子字串25/26Regular expression in Perl cont.Practice.比對.字元取代.字串取代.26/26