Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14937
  • 博文数量: 6
  • 博客积分: 420
  • 博客等级: 下士
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-12 21:11
文章分类

全部博文(6)

文章存档

2010年(4)

2009年(1)

2008年(1)

我的朋友
最近访客

分类:

2010-08-30 23:06:35

表达式真假值:
假值:逻辑值为假;值为 0;字符串为空'';列表为空;undef。
其他情况为真值。
 
if条件语句
if(表达式){
语句}
elsif(表达式) {
语句}
...
else{
语句}
空格忽略,断行可以不同;
elsif和else部分可以省略;
注意elsif关键字;
语句块{}必须有,但可以空;
可以嵌套;
 
unless条件语句
unless(表达式){语句}
与if条件含义相反。为真时退出,表达式为退出条件。
 
while循环语句
while(表达式){语句}
do{语句}while(表达式)
while(表达式){语句}continue{语句}
单行语句 while(表达式)
 
until循环语句
until(表达式){语句}
do{语句}until(表达式)
until(表达式){语句}continue{语句}
单行语句 until(表达式)
 
for循环语句
for(表达式1;表达式2;表达式3){语句}continue{语句}
 
foreach循环语句
foreach $w(列表或数组){语句}continue{语句}
() 内为数组@a,或列表(1,2,3);
$w 可以是新变量,也可以是已使用的变量。在循环结束后变量值恢复;
每次循环把列表或数组中的值依次赋与 $w,直到列表为空。可以不必关心数组长度;
如果在循环体中修改 $w 的值,则相应的数组元素值也改变;
当列表中是常量时,$w 的值不能修改;
$w 和 @a 可以相同,如$a(@a);
for和foreach可以互换,通用。
foreach形式:
foreach $a(@a){}         一般形式;
foreach $a(1,2,3,4){}    列表;
foreach $k(keys%h){}     散列形式;
foreach $a(@a[1,2,3]){}  只对数组的部分元素;
foreach (@a){} 省略循环变量,缺省为 $_
    $_ 缺省变量。print; 为打印 $_ 变量。
 
循环控制语句
last:退出循环;
next:执行下一循环。循环中Next下的语句本次不执行。对于for要执行变量自增;
redo:重新执行本次循环,对于for不执行变量自增。在do语句中无效;
goto:跳转。不能跳转到循环或子程序内。不建议使用。

continue语句块
紧跟在循环语句后,在循环体执行完,下一次条件判断之前执行;
也可用于由 {} 标识的语句块之后;
从last跳出后不执行。但next执行。
 
标记语句块
标记只能由字母和下划线组成,一般为大写,由:分隔。
标记定义:定义在循环语句前或语句前(goto),如while,for
跳转到标记:last | next | redo | goto LABEL;
一般用到嵌套循环的内层跳到最外层时。其中last是退出最外层循环,程序继续向下走,不是跳转到最外层再执行。
 
单行条件与循环语句
条件语句:语句在前,条件在后。print $a if $a=0;但是先测试条件再执行语句。
同理:
unless:print $a unless($a==0);
while :print $a while($a--==0);
until :print $a until($a--=0);注意循环语句不要丢失控制变量,造成死循环。
 
用||,&&的条件语句:$a==0&&print $a;
                    open(F,'file')||die "can't open";
die函数:在控制台标准错误输出信息后退出程序。
warn:输出信息后不退出程序,只起警报作用。
$!:内部变量包含错误代码。
$@:内部变量包含错误信息。
阅读(454) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~