術(shù)語(yǔ)匯編 Perl語(yǔ)言概述
本文和大家重點(diǎn)討論一下Perl的概念,Perl最初的設(shè)計(jì)者為拉里·沃爾(LarryWall),他于1987年12月18日發(fā)表,Perl提供腳本語(yǔ)言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awk到Perl的翻譯器。
Perl概述
別期望在一刻鐘內(nèi)就能領(lǐng)略Perl的所有神奇之處,這種情況很像吃香蕉,用不著吃完整只香蕉后才知其味,每咬一口都是享受,并促使你再咬下一口,再下一口。
----LarryWall
Perl概述
Perl是PracticalExtractionandReportLanguage(實(shí)用摘錄和報(bào)告語(yǔ)言)的簡(jiǎn)稱,是由LarryWall所發(fā)展的。其最新版本為5.0。
Perl的設(shè)計(jì)目標(biāo)是幫助UNIX用戶完成一些常見的任務(wù),這些任務(wù)對(duì)于shell來說過于沉重或?qū)σ浦残砸筮^于嚴(yán)格。
Perl是按GNUPublicLicense的形式分發(fā)的,其實(shí)質(zhì)是免費(fèi)的,原先運(yùn)行于UNIX和類UNIX系統(tǒng),現(xiàn)在已可以方便地在OS/2,Windows9x,Windows/NT等系統(tǒng)下運(yùn)行。
Perl是解釋運(yùn)行的,一般Perl程序的第一行需注明自己是一個(gè)Perl程序而不是shell程序,所以一般將下面一行語(yǔ)句:
#!/usr/bin/perl
作為文件的第一行。
第一個(gè)Perl程序
就拿各類書籍最常用顯示"Hello!Welcome!"程序來說吧。下面是其源程序:
#!/usr/bin/perl
print"你好!歡迎光臨網(wǎng)上學(xué)園!\n";
這里的第一行說明了這是一個(gè)Perl程序,它也是Perl的注釋,注釋是從#開始至該行結(jié)束的所有文字。
第二行是程序的可執(zhí)行部分,這里只有一條print語(yǔ)句,如果你學(xué)過C語(yǔ)言,就能很快掌握它。
提問并保留結(jié)果
在此基礎(chǔ)上做稍微復(fù)雜一點(diǎn)的改變,我們使該程序按你的名字打招呼。要做到這一點(diǎn),需要一個(gè)變量來存放姓名。我們使用$name來保存姓名。
#!/usr/bin/perl
printf"請(qǐng)問您的姓名?";
$name=<STDIN>;
chop($name);
printf"你好,$name,歡迎光臨網(wǎng)上學(xué)園!\n";
這里第三行表示從終端獲得行輸入并賦值給$name,這里的$name的值有一個(gè)換行符,第四行chop($name)表示去掉$name的最后一個(gè)字符(即換行符)。第五行顯示輸入。
增加選擇
現(xiàn)在讓我們?yōu)閳@主zmd編寫一個(gè)特殊的歡迎辭,而對(duì)其他人則采用普通歡迎辭。要達(dá)到這樣的效果必須將輸入的姓名與zmd作比較,如果相同則執(zhí)行特殊功能。
#!/usr/bin/perl
printf"請(qǐng)問您的姓名?";
$name=<STDIN>;
chop($name);
if($nameeq"zmd"){
printf"歡迎zmd進(jìn)入本系統(tǒng)!\n";
}else{
printf"你好,$name,歡迎光臨網(wǎng)上學(xué)園!\n";
}
這里第五行用eq操作符對(duì)兩個(gè)字符串進(jìn)行比較,相同則執(zhí)行下一句,否則執(zhí)行else下的語(yǔ)句(是不是和C語(yǔ)言差不多?)。
猜測(cè)密碼
現(xiàn)在已經(jīng)可以對(duì)zmd發(fā)不同的歡迎辭,但如何加上密碼來控制權(quán)限呢?比如說,可以讓除zmd以外的人都必須輸入密碼直到正確為止:
#!/usr/bin/perl
$password="wsxy";#密碼為wsxy
printf"請(qǐng)問您的姓名?";
$name=<STDIN>;
chop($name);
if($nameeq"zmd"){
printf"歡迎zmd進(jìn)入本系統(tǒng)!\n";
}else{
printf"你好,$name!\n請(qǐng)輸入密碼:";
$guess=<STDIN>;
chop($guess);
while($guessne$password){
printf"密碼錯(cuò)誤,請(qǐng)重新輸入:";
$guess=<STDIN>;
chop($guess);
}
}
這里先將密碼保存在標(biāo)量變量$password中,然后當(dāng)不是zmd登錄后,先顯示歡迎語(yǔ)句,然后要求輸入密碼,通過ne操作符將輸入結(jié)果和$password相比較,密碼相同則退出,不同則一直循環(huán)下去。
【編輯推薦】
- 用Perl POE實(shí)現(xiàn)端口重定向
- 淺談配置Eclipse支持Perl腳本開發(fā)
- 用Perl和Google Earth創(chuàng)建可用性地圖
- 在 Perl/Tk 中使用高級(jí)窗口小部件
- 讓Perl成為你的嵌入式開發(fā)工具