標籤:
Perl語言中的大部分語句運算式後都緊接一個分號,分隔不同的Perl語句。
perl解譯器能一次完成編譯和運行這兩個動作。 perl通過一對反引號"``"來表示運行外部命令。
標量(scalar)包括數字和字串兩部分。
在perl內部按“雙精確度浮點數”的格式來儲存數字,整型常量也會被轉換成等效的浮點數。
perl允許在數字直接量間插入“_”分隔字元。而且對於十進位(decimal)之外的數。八進位(octal)以“O”開頭。
十六進位(hexadecimal)以“0x”開頭。二進位(binary)以“0b”開頭。
數字操作符包括:+,-,*,/,%。模數操作先取整再求餘。
$fred += 5; $str .= "";
perl內的字串長度不受限制,從Null 字元串到無限長都可以。
如果源碼內出現除ASCII之外的其他字元,需要加use utf8;來加入任意一個unicode的支援。
單引號內的字串,基本不會出現特殊字元,除單引號“ ‘ ”和“ / ”,其他字元都表示他們本身。
雙引號內的字串,可以表示多個特殊字元,而且支援變數插入。
字串操作符有:字串串連符“ . ”,字串重複操作符“ x ”。表示重複的直接量在使用前會取整,直接去掉小數。
5x4.8 #得到“5555”
perl內支援數字與字串直接的自動轉換,根據操作符來判斷。字串中的非數字部分及其之後的數字部分,在轉換過程中都會被忽略。
標量變數(variable),以貨幣符號“$”來表示,為了避免變數名的歧義,可以使用花括弧{}來將變數名括起來。
perl中的變數不需要初始化,初始值都是undef。而後可以直接用來賦值或運算。
運算操作符有比較操作符:按數字或字串來劃分,==(eq), !=(ne), <(lt), > (gt), <= (le), >= (ge)。
布爾值:perl內部沒有專用的布爾類型。如果數字是“0”,則為假,其他都是真。如果字串是空,則為假,其他都是真。
’0‘是唯一的為假的非Null 字元串。
perl中的控制結構:if...else.. while( ) {.....}
print輸出結果用雙引號“”來表示輸出內容。
print "The answer is ", 6*7, ".\n"; #也可以用逗號","隔開,連在一塊來輸出。
perl獲得使用者輸入<STDIN>一般在末尾會帶有分行符號。
$line = <STDIN>;
chomp()函數,用於去掉字串末尾的分行符號。
chomp($text = <STDIN>);
defined()函數,用來判斷某個字串是不是Null 字元串。
perl內部的警告功能。可以在命令列用perl -w perl_file來表示。或者use warning。
當perl未被告知使用哪個變數或數值時,使用預設變數$_。
如print沒參數時,預設列印$_的值。
數組:存放列表變數,可以用“@”字元加數組名來引用整個數組。數組索引從“0”開始到“$#+數組名”
$rock[$#rock] = ‘hard rock‘; #對最後一個元素賦值。
列表直接量:用圓括弧內用逗號隔開的一串數字表示。或者使用qw ()表示,其中的空白符會被自動忽略。
qw( fred barney betty dino ) #表示4個元素的列表。
或者使用範圍操作符 .. (1..100); #以“1”為單位而遞增。
帶雙引號的字串內也可以進行數組插入,同時注意數組的索引值中的變數會按普通的字串運算式來表示,進而計算索引值。
$y =2; $x = "this is $fred[$y-1]‘s place" #會直接取$fred[1]這個變數。
在標量上下文和列表上下文,perl的處理方式是不同的。
1)數組的名稱在列表上下文,返回元素的列表。在標量上下文,返回數組中的元素個數。 $number = [email protected];
2)在標量上下文,使用reverse函數。 $backwards= reverse qw/yabba dabba doo/; #賦值oodabbadabbay。
3)在標量上下文,<STDIN>返回輸入資料的下一行。在列表上下文,<STDIN>返回所有剩下的行。
pop/push操作:對數組的最後一個變數進行操作。
shift/unshift:對數組的第一個變數進行操作。
splice操作:對數組隨意的修改。第一個參數表示要修改的數組。第二個參數表示操作的元素的起始索引。第三個參數表示操作的長度。
第四個參數表示要替換的列表。
@array= qw( pebbles dino fred barney )
@removed=splice @array, 1, 2, qw(wilma); #@array=qw( pebbles wilma barney)。
可以使用foreach迴圈體來遍曆列表或數組中的數值,並且在此過程中列表或數組或變數都不會被改變。
foreach $rock (@rocks) {....}
reverse操作符:返回次序相反的列表或數組。
sort操作符:按ASCII碼的大小或字元的代碼點的大小來對列表或數組進行排序。
each操作符:返回數組中下一操作元素的索引值及數值。
while (my ( $index, $value) = each @rocks) {...}
Perl的駱駝精神(一)