一、條件陳述式:有以下幾種類型
1、if (條件運算式) {語句塊}
2、單條Perl語句 if( 條件運算式);
3、if (條件運算式) {語句塊1}
else {語句塊2}
4、if (條件運算式1) {語句塊1}
elsif (條件運算式2) {語句塊2}
elsif (條件運算式3) {語句塊3}
...................
elsif (條件運算式N-1) {語句塊N-1}
else {語句塊N}
二、迴圈語句:有以下幾種類型
1、while迴圈:
while(真值條件運算式) { #迴圈體 }
2、until迴圈:
until(假值條件運算式) { #迴圈體 }
3、do語句:常與while迴圈或until迴圈一起使用,do語句至少要把迴圈體執行一次;
do
{
#迴圈體;
} while(真值條件運算式);
或
do
{
#迴圈體;
} until(假值條件運算式);
這兩種迴圈的特點是:每次迴圈,先執行迴圈體,然後判斷條件運算式;
需要注意的是:do語句塊種不能使用標號;do-until結構內不能使用next、redo或last語句;
4、for迴圈:
標準得for語句:
for(運算式1;運算式2 ;運算式3) { #迴圈體 }
有兩種場合可以使用該迴圈:
A:迴圈次數確定得場合;
B:迴圈次數不確定,但是明確給出迴圈結束條件;
for語句最簡單得應用形式如下:
for(迴圈變數初值;迴圈條件;迴圈變數值修改) { #迴圈體 }
5、foreach迴圈:
這類迴圈得意義實際上與for語句得意義一樣;foreach能做的事情,for語句照樣能做;一般這樣區分for語句和foreach語句:
A:for迴圈多用於迴圈次數確定的環境;
B:foreach迴圈多用於處理數組和雜湊變數;
foreach語句利用Perl提供的內建列表屬性來重複數組或列表;foreach處理數組、列表或雜湊變數的方式如下:
foreach SCALAR (LIST) { #迴圈體 }
foreach迴圈有一個內建的列表/數組元素訪問操作器,能夠訪問到數組、列表或雜湊變數中的每一個元素;每次通過迴圈的時候,SCALAR就被賦予LIST中的下一個元素,然後迴圈體被執行;每次迴圈只處理列表中的一個元素,處理完所有元素之後,列表返回一個null值,也就是為假,此時退出迴圈;
foreach迴圈可以省略列表變數SCALAR(迴圈控制變數),此時的foreach迴圈的格式如下:
foreach (LIST) { #迴圈體 }
如果省略了列表變數SCALAR,Perl解譯器會把列表中的每一個元素一個一個地賦值給預設的特殊變數“$_”,此時就把這個特殊變數“$_”看作事這個foreach迴圈的列表變數,它與列表變數SCALAR的功效相同;
列表變數的範圍僅僅限於foreach迴圈體中,它不影響迴圈體外的同名變數;這一點與for迴圈中的迴圈控制變數不同;
用foreach迴圈處理數組:
foreach $Variable (@Array) { #迴圈體 }
用foreach迴圈處理數組時,如果改變了數組迴圈變數$Variable,那麼就會改變數組中相應元素的值,這和用foreach迴圈處理列表時大不相同;
用foreach迴圈處理雜湊變數:
由於雜湊變數是使用任意類型的關鍵字來作為下標索引的數組,而且雜湊變數的索引不按次序存放,也不按順序讀出,所以用foreach迴圈處理雜湊變數的時候要配套地使用函數keys()和values():
foreach $Index (keys(%Hash)) { #迴圈體 }
或
foreach $Index (sort(keys(%Hash))) { #迴圈體 }
foreach $Value (values(%Hase)) { #迴圈體 }
Perl提供的存放系統當前環境變數的內建特殊雜湊變數:%ENV