專家推薦 Perl基礎(chǔ)教程入門指導(dǎo)
本文向大家重點(diǎn)學(xué)習(xí)一下Perl基礎(chǔ)教程,主要包括Perl的構(gòu)件,控制流程序,列表數(shù)字和文件操作等內(nèi)容,相信通過本文的學(xué)習(xí)你對(duì)Perl基礎(chǔ)知識(shí)一定會(huì)有全面的認(rèn)識(shí)。
Perl基礎(chǔ)教程
一、Perl基礎(chǔ)
1.常用命令
1.1perl–v顯示Perl版本,測(cè)試Perl是否安裝
1.2perldoc–tf<函數(shù)名>查找函數(shù)信息
1.3perldoc–q<key>查找FAQ
1.4perl是一種解釋型語言,不需要編譯;Python是虛擬機(jī)語言,要編譯。
二、Perl的構(gòu)件:數(shù)據(jù),字符串
1.轉(zhuǎn)義字符用\<symbol>表示
2.qq,q運(yùn)算符,使用非字符或數(shù)字作為限定符
3.標(biāo)題變量$<key>
4.chomp刪除換行符
5.<stdin>輸入設(shè)備
6.格式化字符串直接在字符串中引用標(biāo)量
三、Perl基礎(chǔ)教程之控制程序流
1.空undef
2.last,redo,next都可以跟標(biāo)號(hào)
3.exit0正常退出程序
四、Perl基礎(chǔ)教程之列表/數(shù)組
1.qw運(yùn)算符聲明列表
2.定義范圍1..20
3.定義數(shù)組@<key>
4.引用數(shù)組元素$<key>[index]
5.查找數(shù)組大小$size=@array
6.$#foo最后一個(gè)元素的索引號(hào)
7.localtime返回一個(gè)表示當(dāng)前時(shí)間的時(shí)間元素列表
8.for,foreach$var(@array)
9.split函數(shù)
10.join函數(shù)
11.sort給數(shù)組排序
12.<=>飛船運(yùn)算符
13.scalar函數(shù),強(qiáng)制轉(zhuǎn)換為一個(gè)標(biāo)量放入標(biāo)量上下文,返回放入的數(shù)量
scalar@_; #p#
五、Perl基礎(chǔ)教程之文件操作
1.die函數(shù)
2.$!用來在die函數(shù)中返回操作系統(tǒng)的出錯(cuò)消息
3.warn
4.defined<>undef
5.$_foreach讀出的系統(tǒng)變量
例:
open(MYFILE,"c:/manifest.mf")||die"err:$!";
六、Perl基礎(chǔ)教程之正則表達(dá)式
1.正則表達(dá)式中的元字符:
${}#^@|?.+*[\
2.將模式串括起來的字符可以是任意的元字符;除非使用非斜扛分隔符,否則可以不使用m。
3.用[]表示字符類
4.通配符{最少出現(xiàn)次數(shù),最大出現(xiàn)次數(shù)
5.特殊字符類
\w單詞字符
\W非單詞字符
\d數(shù)字
\D非數(shù)字
\s空白字符
\S非空白字符
6.選擇|
7.位置通配符
^一行開始
$一行結(jié)尾
8.替換
s/$searchpatten/replacement/;
9.修飾符
/g重復(fù)多次匹配
/I忽略大小寫
七、Perl基礎(chǔ)教程之哈希結(jié)構(gòu)
1.用%聲明%hash=("k1","v1","k2","v2");
2.用=>分隔鍵和值聲明%hash2=("k1"=>"v1","k2"=>"v2");
3.引用哈希值$hash{"k1"}
4.用keys檢索哈希表的關(guān)鍵字
foreach(keys%hash){
print"$_\n";
}
5.用values檢索哈希表中所有值
foreach(values%hash){
print"$_\n";
}
5.reverse%hash轉(zhuǎn)換成列表,鍵值對(duì)換
6.哈希合并%h={%h1,%h2}
7.測(cè)試哈希值是否存在if(exists$hash(keyval))
8.刪除哈希值delete$hash(keyval)
9.刪除所有鍵值%hash={}
10.查找數(shù)組中的所有唯一元素
八、Perl基礎(chǔ)教程之函數(shù)
1.聲明函數(shù)
subsubFun{
for($i=0;$i<10;$i++){
print$i;
}
Return(true);
}
2.參數(shù)
@_表示隱含參數(shù)列表
$_[2]表示第二個(gè)參數(shù)
($hit,$bats)=@_
例:
subparamFun{
($a,$b)=@_;
print"\na=$a";
print"\nb=$b";
}
3.聲明函數(shù)內(nèi)變量
My$y=500;#p#
九、其它函數(shù)和運(yùn)算符
1.indexstring,substring
2.rindexstring,substring
3.substrstring,offset,length
可用于替換字符串
4.tr/searchlist/replacelist/轉(zhuǎn)換運(yùn)算符
tr/a-z/A-Z/;把大寫轉(zhuǎn)換為小寫
$num=tr/0-9//;計(jì)算數(shù)字的數(shù)量
5.=~運(yùn)算符
代替默認(rèn)環(huán)境變量
$b=$a=~s/a/b/;把$a中a替換為b,賦值給$b
6.printf,sprintf格式化輸出函數(shù)
十、Perl基礎(chǔ)教程之操作文件和目錄
1.opendirTEMPDIR,’c:/’
2.readdir返回的文件名不包含路徑名
3.closedir(TEMPDIR);
4.Glob函數(shù)查詢文件返回的文件名帶路徑
5.grep查詢文件返回的文件名不帶路徑
6.chdir
7.mkdir
8.rmdir只刪除完全是空的目錄
9.unlink刪除目錄下所有文件,并返回文件數(shù)量
10.rename
11.Example:
12.chmod賦予權(quán)限
13.statfilename;statfilehandle返回文件句柄信息
#打開目錄下的所有txt文件
- opendir(TD,"C:/TEMP")||die"error:$!";
- @FILES=grep(/\.txt$/,readdirTD);
- foreach(@FILES){
- print$_;
- openFILEH,"C:/TEMP/$_"||die"can'topenfile:$!";
- foreach(<FILEH>){
- printscalar($_);
- }
- }
- @files=glob("C:/TEMP/*.txt");
- foreach(@files){
- print$_;
- }
十一、系統(tǒng)互操作性
1.system調(diào)用操作系統(tǒng)命令,正常返回0;返回1.
十二、Perl基礎(chǔ)教程之DBM文件
1.DBM文件是與perl哈希結(jié)構(gòu)聯(lián)系在一起的文件結(jié)構(gòu)。
2.將哈希結(jié)構(gòu)與dbm關(guān)聯(lián)起來
Dbmopen(hash,filename,mode);
3.each函數(shù),對(duì)較大的哈希結(jié)構(gòu)迭代操作
($key,$val)=each(%h);
4.open的限定符
<file只讀
>file只寫,不存在創(chuàng)建,重寫
>>只寫,創(chuàng)建,追加
5.隨機(jī)讀取文件
Seek(fileHandle,Offset,相對(duì)位置)函數(shù)
6.鎖定UNIX和NT下的文件
Flock(FILEHANDLE,locktype);
FL_SH公共鎖
FL_EX專用鎖
7.讀寫鎖控制:設(shè)置一個(gè)信標(biāo)文件 #p#
十三、Perl基礎(chǔ)教程之引用和結(jié)構(gòu)
1.創(chuàng)建對(duì)變量的引用
$ref=\$a;
2.輸出地址引用的值
Print$$ref
3.對(duì)數(shù)組和哈希表的引用
$$a[0]
@$a
%$a
$$a{xx}
4.列表中的列表
@list_of_lists={[qw(xxx)],[qw(ddf)]};
5.遍歷數(shù)組
- foreachmy$outer(@list_of_lists){
- print$outer;
- foreachmy$inner(@($outer)){
- print$inner;
- }
- }
十四、使用模塊
1.use引用其它模塊
例:cwd獲取環(huán)境變量
Strict改變程序運(yùn)行特性,使之對(duì)引用和裸單詞變得嚴(yán)謹(jǐn)
十五、Perl歷史
定位于解釋型語言,適合作為CGI語言
社群:http://www.perl.org/CPAN
【編輯推薦】
- Perl基礎(chǔ)知識(shí)概述
- Perl基礎(chǔ) Perl 哈希表概述
- Perl基礎(chǔ) Perl復(fù)雜數(shù)據(jù)結(jié)構(gòu)
- Perl基礎(chǔ) 解析Perl標(biāo)量和數(shù)組概念
- Perl基礎(chǔ) Perl引用和數(shù)組用法解析