- 论坛徽章:
- 0
|
Perl 流程控制
Perl 的流程控制敘述和 C language 蠻像的, 不過 Perl 的 BLOCK 中的敘述一定要用大括弧 { } 括起來
條件控制敘述
1. if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK else BLOCK
範例
if ( $i <10 ) {
print " $i < 10";
} else {
print "$i >;= 10";
}
範例
if ( $i <10 ) {
print "$i < 10";
} elsif ( $i>;=10 && $i<100 ) {
print "100 >; $i >;= 10";
} elsif ( $i>;=100 && $i<1000 ) {
print "1000 >; $i >;= 100";
} else {
print " $i >;= 1000";
}
2. unless (EXPR) BLOCK
unless 是和原來 if 相反的意思, 也就是 if not .....之意
範例
unless ( $x >;0 ) {
return -1;
}
3.為了增加可讀性, if 和 unless 可以加在一般敘述的尾巴作為修飾條件
範例
return -1 unless $x >;0;
4.在 perl 中沒有 switch 功能, 請利用 if elsif 自行模擬
迴圈控制敘述
1. while (EXPR) BLOCK
範例
$i=0;
while ( $i <10 ) {
print "$i\n"; $i++;
}
2. do BLOCK while EXPR
範例
$i=0;
do {
print $i; $i++;
} while ( $i<10 )
3. for (EXPR; EXPR; EXPR) BLOCK
範例
for ( $i=0; $i<10; $i++ ) {
print "$i\n";
}
4. foreach $VAR (LIST) BLOCK
範例
foreach $day ( @days ) {
print “$day\n”;
}
5. 在 perl 迴圈控制中, 用 next 和 last 取代原本 C language 中的 continue 和 break
6. 在 perl 迴圈控制中, 用 redo 會重新初始化迴圈讓迴圈重頭執行
7. next, last 和 redo 敘述後面可以跟一個 label 用來快速跳離多重迴圈, 透過這個方式可以避免 goto 的使用 |
|