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: 捕获错误 特殊变量$@存放错误信息,如果没有触发异常$@为空。 eval??? { ??? …. } if ($@_)? { ??? print “An error occurred ($@),continuingn”; } ? evalbytes goto return exit do wantarray dump caller "__FILE”,"__LINE__","__PACKAGE__","__SUB__" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |