解析Perl控制结构用法

开发 架构
Perl控制结构你是否了解,Perl语言中有多种控制结构,这里向大家主要介绍一下Perl控制结构中的循环结构,循环机构主要有三种,本文为你一一介绍。

本文和大家重点讨论一下Perl控制结构中的循环结构,主要有while机构,for结构和foreachPerl结构三部分内容,这里向大家做一下详细介绍,希望通过本文的学习大家对Perl控制结构有深刻的理解。

Perl控制结构

先来看看Perl中的循环结构吧。

  1:Perl控制结构之while结构

  while结构在perl中有三种形式。***种形式是这样的:   

  1. #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a=0;  
  5.    while(3>$a)  
  6.      {  
  7.       print$a++;  
  8.       print"";  
  9.      }  
  10.    }  

   第二种是定语后置式。呵呵,英文好的觉得很正常了。  

  1.  #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a=0;  
  5.    print$a++.""while(3>$a);  
  6.    }  

   第三种是这个样子的,很古怪,真的很古怪。这种用法就是加上一个continue:   

  1. #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a=0;  
  5.    while(3>$a)  
  6.      {  
  7.       print"$a";  
  8.      }  
  9.    continue  
  10.      {  
  11.       if($a++>1)print"hello";  
  12.      }  
  13.    }  

   这种结构会在每个while运行了一圈之后运行一遍continue的部分,然后继续进行while循环。

  2:Perl控制结构之for结构

  for结构是各种语言中都有的。perl中的for结构和c语言中的非常相近。下面是一个例子。   

  1. #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a;  
  5.    for($a=0;$a<10;$a++)  
  6.      {  
  7.       print"$a";  
  8.      }  
  9.    }  

 对于数组我们可以这样访问。   

  1. #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my@a=(1..10);  
  5.    my$counter;  
  6.    for($counter=0;$counter<@a;$counter++)  
  7.      {  
  8.       print"$a[$counter]";  
  9.      }  
  10.    }  

   这里面出现了一句$counter<@a,记住,数组在标量情况下即@a返回的是数组的长度,这样就好懂了,是不是?#p#

  3:foreachPerl控制结构

  foreachPerl控制结构很好玩的,在bsh和javascript中有一种for(in)循环和foreach很相象。其他的语言我不熟悉,不知道有没有相近的。foreach的用法可以从下面的例子得知:   

  1. #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my@a=(1..10);  
  5.    my$counter;  
  6.    foreach$counter(@a)  
  7.      {  
  8.       print"$counter";  
  9.      }  
  10.    }  

   这个程序将会把@a数组中所有的元素先逐个引用给$counter,然后把$counter地值打印出来。注意,我这里说得是引用,不是赋值,perl里面的“=”实际上是在进行引用,而不是赋值,这是需要同c严格区分的。下面的例子更加好玩一点,看一看:  

  1.  #!/user/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my@a=(1..10);  
  5.    my$counter;  
  6.    foreach$counter(@a)  
  7.      {  
  8.       $counter++;  
  9.      }  
  10.    print"@a";  
  11.    }  

   猜一猜将会打印出什么?呵呵,是234567891011。因为,$counter是@a中每个元素的引用,所以$counter++就对@a中每个元素进行了++操作。foreach用在hash中是非常爽的。

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

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

  1. #!/usr/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a=3;  
  5.    print"thankgod!"if($a==3);  
  6.    }  

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

  1. #!/usr/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a;  
  5.    for($a=0;$a<10;$a++)  
  6.      {  
  7.       if($a>5)print"haha";  
  8.      }  
  9.    }  

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

  1. #!/usr/bin/perl-w  
  2.    usestrict;  
  3.    {  
  4.    my$a;  
  5.    for($a=0;$a<10;$a++)  
  6.      {  
  7.       if($a>5)print"haha";  
  8.       elseprint"lala";  
  9.      }  
  10.    }  

【编辑推荐】

 

  1. 学习笔记 Perl控制流概念详解
  2. Perl文件句柄概念详解
  3. 解析四大Perl操作符用法
  4. 解析Perl选择性控制结构的两大指令
  5. 学习笔记 Perl数字与字符串间的自动转换

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-16 09:50:23

Perl控制结构

2010-07-19 14:20:57

Perl函数

2010-07-13 13:49:43

Perl foreac

2010-07-19 14:13:41

Perl函数

2010-07-20 09:45:04

Perl继承

2010-07-16 08:47:53

Perl if语句

2010-07-16 16:56:01

Perl构造函数

2010-07-16 13:10:36

Perl哈希表

2010-07-14 15:32:21

Perl转义字符

2010-07-20 15:02:20

Perl数组

2010-07-21 13:59:59

Perl引用

2010-07-19 14:37:01

Perl进程启动函数

2010-07-15 15:54:10

Perl守护进程

2010-07-15 10:47:22

Perl命令行

2010-07-13 09:23:00

Perl变量

2010-07-14 12:39:30

Prel字符串

2010-07-26 15:17:51

Perl解析XML文件

2010-07-19 11:07:13

Perl控制结构

2010-07-16 13:45:41

Perl引用

2010-07-16 17:04:38

Perl方法
点赞
收藏

51CTO技术栈公众号