免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2578 | 回复: 0

Perl 流程控制 [复制链接]

论坛徽章:
0
发表于 2003-05-04 00:05 |显示全部楼层
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 的使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP