当前位置:学海荡舟 -> 电脑乐园 -> Perl中的控制结构(二)



  编 程 入 门
--CGI编程--Perl中的控制结构(二)--

  一种编程语言中的控制结构是控制程序流程走向的语句和语法,今天先来学学最基本的三个控制If、Unless、Until,呵呵,其实跟其他编程语言中的对应语句的用法没有大的区别,我们就通过几个例子来看一看吧。

  if是各种语言中都有的结构,但是perl的if似乎有点……那个,可称之为“定语后置”。 具体来说就是这个样子的

   #!/usr/bin/perl -w
   use strict;
   {
   my $a=3;
   print "thank god!" if($a==3);
   }

  当然这是一个很无聊的程序了,但给大家演示了perl中定语是如何后置的。其他地方if的用法同其他语言就没什么区别了。又例如下面的例子

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<10;$a++)
     {
      if($a>5) print "haha\n";
     }
   }

  有了if就一定会有else,else也没有什么特别的。用法如下:

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<10;$a++)
     {
      if($a>5) print "haha\n";
      else print "lala\n";
     }
   }

  perl里面有一个特别的控制语句叫做“elsif”的,注意,不是“elseif”,而是“elsif”,这个语句的作用同else if是一样的。使用可以看下面的例子。

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<10;$a++)
     {
      if($a>5) print "haha\n";
      elsif($a>3) print "lala\n";
      else print "gee!\n";
     }
   }


  Unless是If的反义词,这个关键字的用法和if完全一样,但是相当于加上一个!(取非),用一个例子来说:

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<0;$a++)
     {
      print "$a\n" if(
!$a>5);
     }
   }

  和

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<0;$a++)
     {
      print "$a\n" unless(
$a>5);
     }
   }

  是一样的。 我一直不太明白这个关键字有什么用。

  Until是While的反义词,就是说不执行后面的语句一直到满足条件为止。如下面的例子

   #!/usr/bin/perl -w
   use strict;
   {
   my $a;
   for($a=0;$a<0;$a++)
     {
      until($a==3)
       { print "$a\n" unless($a>5);
        $a++;
       }
     }
   }

  这一段程序打印出3,好像很无聊是吧?但是有时候会有用的。这里有一个需要注意的是在until 里面有一个$a++。没有这个就会……555,死循环了。

相关链接:   API实例解析