perl循環控制

if

    格式(類似於awk):

if(表達式){                #空格可以忽略
語句 ;}                     #elsif注意多了個s,elsif和else可以省略    
elsif(表達式){             #語句塊的{}必須有,可以爲空
語句:}
else{
語句;}

unless

    格式:

unless (表達式){
語句;}

while

    格式:

while(表達式){
語句;}

do while

    格式:

do {語句} while(表達式)

until

   格式:

until(表達式){
語句;}

do until

   格式:

do {語句} until(表達式)

for foreach

   for和foreach等價可以互換

    格式:

   c語言風格

for(表達式1;表達式2;表達式3){
語句;}

表達式可以省略分號必須保留:(;;)爲死循環

for($l=<>,$count=1;$count<10;$count++,$l=<>){
    print "$l";}

foreach

foreach $w (列表or數組){
語句;}

()中爲@array或者列表(1,2,3)

 $w爲循環體的局部變量,並不會影響外部同名變量

 循環體每次取數組或列表的元素直到爲空

 修改$w會修改對應元素的值;$w是列表數組元素的一個引用,與列表或數組變量引用具有相同內存地址,所以修改$w會修改其對應元素的值

 列表中爲常量,$w不可改變,$w只是對數組列表元素的一個引用,$w賦值時,$w指向新的內存對象,原列表中的值並不改變

for $a(@a){}
for $a(1,2,3){}
for $k(keys%h){}
for $a(@a[1,2]){}
for (@a){}    #省略循環變量,缺省爲$_

grep,map函數相當於for每個元素進行操作

循環控制

 last 退出循環

 next 執行下一次循環

 redo 重新執行本次循環,for自增不進行,do語句中無效

 goto 跳轉,不能跳到循環或者子程序內

標記:

 字母加下劃線,通常用大寫,以:分隔

標記定義:在循環語句前或者語句前(goto)

    while for

    跳轉到標記: last|next|redo|goto label

OUT: while (...){
             while(...){...
                 last OUT;    #跳轉到OUT標識的語句塊,這裏是跳出這一層循環到外層循環
                 }
               }

continue{語句}

 跟在循環語句後,循環體執行完成,下一次條件判斷前執行

{}標識語句塊

last跳出後不執行,next執行;

單行條件語句與循環語句

print $a if $a==0;#先判斷條件在執行打印
print $a unless($a==0);
print $a while ($a==0);
    #不要丟失對變量控制,防止形成死循環
print $a while ($a--==0);
print $a until ($a--==0);

|| && (用法同shell)

$a==0 && print $a;
open(FD6,'file')||die "can't open file";#die函數,輸出標準錯誤輸出後推出

warn:輸出信息後不退出,只是報警

$! :內部變量包含錯誤代碼

$@ :內部變量包含錯誤信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章