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