Perl语言入门笔记 第十章 其他控制结构(unless,until,elsif,for,last,next,redo,and,or)

=pod
第十章		其他控制结构

unless控制结构:和if相对
	在条件为假时想要运行代码块,就用unless否则就用if:
	unless(judge){	}
	
伴随unless的else子句:
	unless(){	} else {	}
	
until控制结构:
	until($j > $i)
	{
		$j *= 2;
	}
	until在条件为假时重复执行,直到为真为止,和while相对。

表达式修饰符:
	为了进一步简化代码书写,表达式后面可以接一个用于控制它行为的修饰符。
	print "$n is a negative number.\n" if $n < 0;
	先判断$n是否大于0,也就是说后面的判断会先执行
	&error("Invalid input") unless &valid($input);
	$i *= until $i > $j;
	print " ", ($n += 2) while $n < 10;
	&greet($_) foreach @person;
	在使用foreach修饰符的时候无法自选控制变量,必须使用$_。这通常不是问题,不过若真需要自选控制变量,可以用老式的foreach循环改写
	
裸块控制结构:
	所谓的裸块就是没有关键字或条件表达式的代码块,只是一个花括号给包裹起来
	{	裸块	}主要是为了限定变量的作用域
	
elsif子句:
	if() { } elsif() { } else { }	
	perl常见问题集(参阅perlfaq文档)列出了一堆关于如何模拟case或switch的建议,perl5.10或则更高版本的用户可以选择使用第十五章中介绍的given-when结构作为交通方式。

for控制结构:
	for(my $i = 0; $i < 10; $i++) {	}
	for($_ = "bedrock"; s/(.)//;)#当s///这个替换成功时,循环继续
	{ print "One character is: $1\n"; }
	
foreach和for间的秘密关系:
	for(1..10) { print "I can count to $_!\n"; }
	foreach my $i (@array) {  }
	
循环控制:
	last 跳出循环,类似c中的break
	next 不执行下面的指令然后跳到循环的结尾,类似c中的continue
	redo 不执行下次迭代,还是本次迭代,而next会进行下次迭代
	
带标签的块:
	当在内层循环控制外围循环时要用标签
	LINE:while(<>)
	{
		foreach(split)
		{
			last LINE if /__END__/; #跳出标签为LINE的循环
			...
		}
	}

三目操作符: ?:

逻辑操作符:and &&  or || 	

定义或操作符:

使用部分求值操作符的控制结构:
	就是连起来用

=cut

posted @ 2015-09-21 01:51  笑面浮屠  阅读(270)  评论(0编辑  收藏  举报