記下一點文字,爲自己曾經所學留一點點痕跡。
PERL很強大,支持多平臺,,,&%$^&*(&^%。
現在使用的基本是都是版本5。
很簡單易學的:
主要內容安排如下:
一,PERL的基本知識
- 看看官方文章,寫寫Hello Perl,基本就可以開始學習了。
- PERL的變量
- $ 單變量:聲明,賦值
- @數組變量 :聲明,空,數字,字符串,混合,賦值,指定某幾個元素賦值;
- $"數組輸出特殊分隔符號變量:輸出分隔符
- %哈希變量:
- PERL的操作符號
- 加、減、乖、除、模、冪、加加、減減
- AND(&&)、OR(||)、NOT(!)
- 二進制的 與&、或|、非!、與或^、與非、左移<<、右移>>
- 數字關係符號:等於==、不等於!=、大於、小於、大於等於、小於等於、比較<=>返回1(左大右),0(左等右),-1(左小右)
- 字符串也能比較:大於gt、小於lt、大於等於ge、小於等於le、比較cmp 返回1(左大右),0(左等右),-1(左小右)
- 條件取值: CONDITION-PART ? TRUE-PART : FALSE-PART
- 字符串符號:連接符號點(.)、重複串符號x(x) 後面跟數字表示重複的次數。
- 範圍符號:二個點(..),二點左右的可以是數字,也可以是字符。
# "$"符號表示單變量 #var Number and String print "demo of Number and String "; $number = 20; $str = "Real Number is " ; print ("$str $number .\n"); # "@”符號表示數組變量 # " $" "符號是特殊變量 # var Array print "demo of Array "; $line = 0; @emptyArray = (); #表示空數組 @numberArray = (1..15); #表示1到15的數字,可以連續的二個點代替中間的數字,三個點也行 @stringArray = ("string1\,","string2\,","string3\."); #表示字符串數組 @mixedArray =("stringy\,","stringx\,",3,5); #表示混合的數組 print "here is and empty array:".@emptyArry. "nothing here. \n"; print ("Print array in single line @numberArray"); print "\n"; $" = ","; #如果輸出數組中間的符號想變化一下,用 $" 進行設置 print ("@numberArray"); print "\n"; foreach (@numberArray){ print ($numberArray[$line]); #使用數組時,"$"符號代替"@"符號 print "\n"; $line = $line +1 ; }; # "%"符號表示哈希變量 %ages = ('zhao' => 28, 'qian' => 35, 'sun' => 29, 'li' =>99,); print ( uc(li).. " is $ages{li} years old\n");
- 函數
- 函數聲明:sub 函數名
- 函數變量:sub 函數名(變量)
- 函數變量賦值:$_[序號]
- 函數變量計數:變量 = @_
- 函數調用: 函數名(變量)
- 函數返回:return
- 常用字符串函數:
- 常用字符串函數:變大寫UC(uppercase)、大寫首字母Ucfirst、小寫lc(lowercase)、小寫首字母lcfirst、字符串長度length(str)、切分split(pattern,str,limit)、子串substr(原串,返回起始位置)、返回匹配的最後一個位置rindex(原串,匹配串)
- 常用數組函數:刪除delete(key)、exists(key)、連成串 join(str,array)返回一個符串、pop(array)、排序sort等。
- 語句與控制語句
- 語句塊一般以{ }作爲開始和結束。當然,一個聲明也可以是一個語句塊。
- 控制語句與其它語言差不太多,下面分了不同控制語句進行了示例。
# 語句和控制語句示例 # if語句示例 $a = 1; $b = 12; $c = 12; if($a == $b){ print ("a == b : $a == $b" ); print "\n"; }elsif($a == $c){ #小心,此處的"elsif"不是字符串ELSE 和IF print ("a == c : $a == $c" ); print "\n"; }else { print ("a != b : $a != $b"); print "\n"; } # while語句示例 do{ print("a = $a \n"); $a++; } while ($a <=$b); $a = 1; while($a <= $b){ print("a = $a \n"); $a++; }continue { print ("after while continue."); } ; # until語句示例 $a = 5; do{ print("a = $a \n"); $a++; } until ($a <=$b); # for 語句示例 $a = 5; for ($a=5;$a<$b;$a++){ print("a = $a \n"); }; # foreach語句示例 @arrayA = ("A","B","C","I"); $a =0; foreach(@arrayA){ print ("array element$a value is $arrayA[$a] .\n"); $a ++; } # last語句示例 print ("DEMO of last .\n"); @arrayA = ("A","B","C","I"); $a =0; foreach(@arrayA){ if($arrayA[$a]eq "B"){ print ("array element$a value is $arrayA[$a] .\n"); last; } $a ++; print("after last. \n"); } print("exit from block. \n"); # next語句示例 print ("DEMO of next .\n"); @arrayA = ("A","B","C","I"); $a =0; foreach(@arrayA){ if($arrayA[$a] eq "B"){ print ("array element$a value is $arrayA[$a] .\n"); $a ++; next; }else { print ("array element$a value is $arrayA[$a] .\n"); $a ++; } }; # redo 語句示例 print("What is your name? \n"); $name = <STDIN>; #標準輸入,從鍵盤。 chop($name); if (! length($name)) { print("Msg: Zero length input. Please type your name .\n"); redo; #重新執行當前語句塊 } print("Thank you, " . uc($name) . "\n"); # goto 語句示例 #基本不用,不浪費時間寫示例了。
- 指針ref
- 使用文件資源
文件操作比較簡單,主要有:
- 打開文件:open、sysopen(與open模式相當,只是以文字方式進行文字模式的打開模式授權)
- 關閉文件:close
-
刪除文件:unlink
- 重命名文件:rename
-
打開方式:
> or w Creates, Writes, and Truncates >> or a Writes, Appends, and Creates +< or r+ Reads and Writes +> or w+ Reads, Writes, Creates, and Truncates +>> or a+ Reads, Writes, Appends, and Creates
-
目錄操作:創建目錄mkdir、刪除目錄rmdir、改變目錄chdir等
opendir DIRHANDLE, EXPR # To open a directory readdir DIRHANDLE # To read a directory rewinddir DIRHANDLE # Positioning pointer to the begining telldir DIRHANDLE # Returns current position of the dir seekdir DIRHANDLE, POS # Pointing pointer to POS inside dir closedir DIRHANDLE # Closing a directory.
- 正則表達式
- 特殊變量
- 異常控制
- 面向對象
- PERL模塊庫
- 如何DEBUG
- PERL的常用命令行
- PERL與網絡編程
- Socket、Mail、Ftp、Http、NNTP (新聞相)
- 什麼是CGI(Common Gateway Interface)
- 表單處理(HTML)
- PERL開發Web Service
- 有哪些好的網絡資源