首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 网络编程 > CGI > 正文
  • CGI编程--Perl中的控制结构(二)
      2007-2-25  来源:网络资源  编辑:Jsbulo  热度:

      一种编程语言中的控制结构是控制程序流程走向的语句和语法,今天先来学学最基本的三个控制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,死循环了。