Perl - 成功大學myweb個人網頁空間服務說明

Download Report

Transcript Perl - 成功大學myweb個人網頁空間服務說明

生物資訊程式語言應用
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.
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

Practice.



Using scalar.
Special expression.
字串與數字間的轉換.
cont.
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

Practice.



Using array (definition).
單數取用.
複數取用.
cont.
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


Hash 單數的取用.




%students = ("Peter"=>"9154610" , "Mary"=>"9154611" ,
"Cathy"=>"9154612");
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

Practice.



Using hash (definition).
單數取用.
複數取用.
cont.
Control structure in Perl




If statement (陳述式).
For loop (迴圏).
Foreach loop (迴圏).
While loop (迴圏).
Control structure in Perl

cont.
If statement (陳述式).
If 條件判斷
If 條件成立則執行
若If 條件不成立則執行
(else statement可有可無)
Control structure in Perl

Practice.


If statement.
If - else statement.
cont.
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

Practice.


While loop (迴圏).
1+2+…+100.
cont.
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

Practice.



比對.
字元取代.
字串取代.
cont.