以前接觸過perl一段時間,沒用過,現在全忘了。剛又看了下perl,把基本知識總結一下:
1.單數變量用$前綴,數組用@前綴
定義數組:
@aray = (1, '2', $var);
$aray[4] = "ds";
2.可以數組交換賦值 ($a, $b) = ($b, $a);
3.複數變量包括數組和散列,數組是有序的,散列是無序的
4.散列用%前綴
定義散列:
%hash = ("mon" => "monday", "sun" => "sunday");
或者%hash = ("mon", "monday", "sun", "sunday");
$hash{"thu"} = "thusday";
取值:
$hash{"mon"}
5.複雜數據結構;
散列中的數組:$wife{"you"} = ["wife1", "wife2", "wife3"];
訪問:$wife{"you"}[0];
散列中的散列中的數組:$wife{"you"} = {"wife1" => ["child1", "child2"], "wife2" => ["child3", "child4"};
訪問:$wife{"you"}("wife1"}[0];
6.函數:
調用用戶自定義函數的時候,前面可以加&也可以不加:$returnValue = &getUser();或者$returnValue = getUser();
7.標準輸入輸出: <STDIN> <STDOUT>
$var = <stdin> 等待用戶輸入
8.操作符:
+ 數字相加
. 字符串連接
** 冪運算 2 ** 3爲2的3次冪
* 乘法
x 重複 ‘a’x3 則a重複三次
9.任何過程都擁有返回值,所以可以在一個語句中多次改變同一個變量的值
比如: ($temp -= 32) *= 5/9;
10.文件測試操作符:
-e 存在
-r 可讀
-w 可寫
-d 目錄
-f 文件
-T 文本文件
11.判斷:
if(){}elsif(){}else{} 必須有大括號
unless(){}如果不是這樣則執行括號中的語句
12.循環:
while(){}爲真則執行
until(){}爲假則執行
for(){}for循環
foreach $v (@array) foreach循環
last和next 控制跳出循環:(例子)
Line:foreach $a (@array){
next Line if $a eq 1;
last Line if $a == 2;
}
13.正則表達式:
*在缺省狀態下,Perl 量詞都是貪婪的,也就是他們將儘可能多地匹配一個字符串中最大數量的字符
while ($line = <FILE>) {
if ($line =~ /http:/) { # 符號=~ 是模式綁定操作符
print $line;
}
}
和
while (<FILE>) {
print if /http:/;
}是一樣的效果。
*最小匹配:/.*?:/ 加上問號?就表示是非貪婪匹配,取儘量小的字符串
/b 單詞邊界
^和$匹配行首和行尾