Perl教学 第七篇 控制结构

转载 2006年06月16日 04:21:00
一、条件判断
if ( ) {

}
elsif ( ) {

}
...
else{

}
二、循环:
1、while循环
while ( ) {

}
2、until循环
until ( ) {

}
3、类C的for循环 ,如
for ($count=1; $count <= 5; $count++) {
# statements inside the loop go here
}
下面是在for循环中使用逗号操作符的例子:
for ($line = , $count = 1; $count <= 3; $line = , $count++) {
print ($line);
}
它等价于下列语句:
$line = ;
$count = 1;
while ($count <= 3) {
print ($line);
$line = ;
$count++;
}
4、针对列表(数组)每个元素的循环:foreach,语法为:
foreach localvar (listexpr) {
statement_block;
}
例:
foreach $word (@words) {
if ($word eq "the") {
print ("found the word 'the'/n");
}
}
注:
(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。
(2)在循环中改变局部变量,相应的数组变量也会改变,如:
@list = (1, 2, 3, 4, 5);
foreach $temp (@list) {
if ($temp == 2) {
$temp = 20;
}
}
此时@list已变成了(1, 20, 3, 4, 5)。
5、do循环
do {
statement_block
} while_or_until (condexpr);
do循环至少执行一次循环。
6、循环控制
退出循环为last,与C中的break作用相同;执行下一个循环为next,与C中的continue作用相同;Perl特有的一个命令是redo,其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。
7、传统的goto label;语句。

三、单行条件
语法为statement keyword condexpr。其中keyword可为if、unless、while或until,如:
print ("This is zero./n") if ($var == 0);
print ("This is zero./n") unless ($var != 0);
print ("Not zero yet./n") while ($var-- > 0);
print ("Not zero yet./n") until ($var-- == 0);
虽然条件判断写在后面,但却是先执行的。

使用perl画图

zz :http://stackoverflow.com/questions/18150841/gdgraph-with-perl GD::Graph with Perl
  • sxlwzl
  • sxlwzl
  • 2014年08月06日 22:09
  • 1422

Leveldb源码解析第七篇【log】

版权声明:本文为博主原创文章,未经博主允许不得转载。 这里的 log 非彼 log,这里的 log 是记录下用户的所有操作,防止设备异常导致 memtable 里面的数据丢失,用户在操作数据的时候首先...
  • xuxuan_csd
  • xuxuan_csd
  • 2017年06月09日 17:29
  • 186

perl文件操作总结(全面讲解perl的文件操作)

perl 文件操作,包括打开、关闭文件,读取、定入文件等。 原文链接:http://www.jbxue.com/article/3153.html 打开、关闭文件 open (filev...
  • vip_linux
  • vip_linux
  • 2013年10月23日 13:46
  • 3731

perl /m修饰符使用说明

高级用法; 多行匹配: grok正则和普通正则一样, 默认是不支持匹配回车换行的。 perl的/m选项 The /m modifier allows ^ and $ to match imme...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年08月19日 10:21
  • 594

比较Python和Perl的效率

本文通过一个Perl程序和一个Python程序对于多达212MB,170多万行的文本文件的分析,比较了Perl和Python程序在执行以及开发上的效率。...
  • nirendao
  • nirendao
  • 2016年01月09日 21:53
  • 2951

perl变量作用域以及定义方式。

问:Perl中以my开头的语句,my是什么作用? 答(一): 像C语言中有作用域的概念,比如一个在函数中定义的变量,在函数外是无效的。 perl也有作用域的概念,perl定义的变量默认是全局的...
  • everysmile
  • everysmile
  • 2013年03月15日 17:09
  • 6107

perl socket 客户端发送消息

use IO::Socket::INET; use Data::Dumper; $|=1; $sock = IO::Socket::INET->new(PeerAddr => ...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2017年03月08日 10:39
  • 522

perl的特殊符号

@       数组                            $x{}   x名字前面是美元符号($),后面是花括号({}),则其为 hash 元素 %       要引用整个 ha...
  • rgb_rgb
  • rgb_rgb
  • 2017年01月15日 00:17
  • 380

Perl语言入门 (08 自定义函数)

由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚。废话不多说直接上干货!!! ————————————...
  • haoweilaizoule
  • haoweilaizoule
  • 2016年09月08日 11:23
  • 1043

PERL 引用与解引用

PERL 语言中的引用与解引用,PERL 语言中的引用在用法上与C/C++本质上是相同的,而且为列表和哈希的多层嵌套提供了方法。引用本质上把列表和哈希转换成了标量的别名。因为在列表和哈希的元素只能是标...
  • abccheng
  • abccheng
  • 2015年11月23日 22:05
  • 1445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perl教学 第七篇 控制结构
举报原因:
原因补充:

(最多只允许输入30个字)