標籤:perl 結構
Perl結構控制語句:
if條件陳述式:
if (condition) {
expression;
} elsif {
expression;
} else {
expression;
}
unless條件陳述式:
條件為假時執行.
unless (condition) {
expression;
} elsif {
expression;
} else {
expression;
}
while迴圈語句:
while (condition){
expression;
}
while(1) {
…
} #死迴圈
until迴圈語句:
條件為假時才執行
until (condition) {
expression;
}
foreach迴圈語句:
foreach $var (@arry/list){
expression;
}
$var迴圈變數並不是對列表元素的複製,而是列表元素本身。
如果在foreach體中修改了迴圈變數也就是修改了列表中的元素。
$var迴圈變數在退出foreach迴圈後恢複原來的值。
迴圈變數可以省略,預設使用 $_ 來代替:
foreach (@arry/list){
print “$_”;
}
for迴圈語句:
perl裡的for和foreach等價,可以根據條件相互轉化。
for (initialization; condition; increment) {
expression;
}
for(;;) {
…
} #死迴圈
裸塊:
{
expression;
}
last函數 :跳出迴圈,相當於c的break。
last LABEL/EXPR
next函數:跳出本次迴圈,繼續下一次迴圈,相當於c的continue。
next LABEL/EXPR
redo函數:無條件跳轉到本次迴圈的頂端,重新執行本次迴圈。
redo LABEL/EXPR
given-when控制結構:
given($var) {
when (condition) { expression }
…
default { expression }
}
多重專案的when匹配:
foreach (@arr) {
when (condition) { expression; continue }
…
default { expression}
}
break: 跳出given塊
continue:繼續執行下一句
條件修飾詞:
dosomething if condition;
也可以寫成:
dosomething
if condition;
迴圈裡的標籤:
在for/while等迴圈關鍵字前面加上標籤可以實現跳轉。
標籤用大寫,可以是字母數字和下滑線,但是不能數字開頭。
eval EXPR/BLOCK: 捕獲錯誤
特殊變數[email protected]存放錯誤資訊,如果沒有觸發異常[email protected]為空白。
eval {
….
}
if ([email protected]_) {
print “An error occurred ([email protected]),continuing\n”;
}
evalbytes
goto
return
exit
do
wantarray
dump
caller
"__FILE”,"__LINE__","__PACKAGE__", "__SUB__"
perl: 控制結構