加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl: 控制结构

发布时间:2020-12-15 23:45:52 所属栏目:大数据 来源:网络整理
导读:Perl结构控制语句: ? if条件语句: if??? (condition) { ??? expression; }??? elsif???{ ??? expression; } else { ??? expression; } ? unless条件语句: 条件为假时执行. unless (condition) { ??? expression; }??? elsif???{ ??? expression; } else {

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__"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读