博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

语句

Posted on 2011-01-31 11:06  bw_0927  阅读(142)  评论(0)    收藏  举报
  •  if

if()

{}

elsif()

{}

else

{}

  • unless

与if相反,unless(表达式)  {语句},执行语句除非表达式为真,为真时退出,表达式为退出条件

  • until

until(表达式)  {语句},与while相反。执行语句,直到表达式为真停止。为真时停止,表达式为退出条件。  do(语句) until(表达式)

  • foreach $w(列表或数组) {语句}

()内为数组@a,或列表(1,2,3);

$w可以是新变量,也可以是已使用的变量。在循环结束后变量值恢复。

如果循环体中修改$w的值,则相应的数组元素值也改变。

当列表中是常量时,$w的值不能修改。

$w和@a可以相同,如$a(@a)。

常见形式:

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:跳转。不能跳转到循环或子程序内。

跳转到标记: last | next | redo | goto LABEL;其中last是退出最外层循环,程序继续往下走,不是跳转到最外层再执行。

OUT: while()

{

  while()

     {

           last   OUT;

      }

}

代码
#!/usr/bin/perl

print
"\$a的值在循环后恢复:";
$a
=1;
print $a;
foreach $a(2,3,4) {print $a;}
print $a

print
"\n改变循环变量的值引起数组元素值的改变:";
@a
=(1,2,3);
print @a;
foreach $c(@a) {$c=5 if $c==2;}
#
foreach $c(@a) {if($c==3) $c=5;}
print @a;

print
"\n可以循环访问数组的部分元素:";
@a
=(1,2,3);
print @a;
foreach $c(@a[1,2]) {print $c;}


print
"\n循环变量的缺省值时\$_:";
@a
=(1,2,3);
foreach(@a) {print "$_";} #哪怕只有一条语句,{}也不可少

print
"\nfor和foreach通用:";
foreach($i=1;$i<5;$i++) {print $i;}

<>;
print
"使用标签";
LABEL:
for($i=1;$i<5;$i++)
{
for($j=1;$j<5;$j++)
{
print $j;
last LABEL
if $i==3;
}
}
print $i;

 

  •  单行语句

条件语句:语句在前,条件在后。  print $a if $a==0;

同理:循环语句

print $a unless($a==0);

print $a while($a--==0);

print $a untile($a--==0);           //退出条件

$a==0 && print $a;

open(F, 'file') || die "can't open";

die函数:在控制台标准错误输出信息后退出程序。

warn:输出信息后不退出程序,只起警报作用。

$!   :内部变量包含错误代码

$@  :内部变量包含错误信息。