1.unless/if结构

unless 条件为假的时候 才执行语句块。

eg:

unless($fred =~ /^[A-Z_]\w*$/i){

print "The value of \$fred doesn't look like a Perl indentifier name.\n";

}

想让于:

if(! ($fred =~ /^[A-Z-]\w*$/i)){

print "The value of \$fred doesn't look like a perl indentifier name.\n";

}

2.unless 's else statements

unless(condition)

{

statements;##run when condition false

}

else

{

statements;##run when condition true

}

3.until / while 控制结构  <===反置关系

until(condtion)

{

body; ###run when condition false

}

4.表达式修饰符用 if/unless  while/until

statements if/unless/while/until

eg:

print "$n is a negative number.\n" if $n <0;

&error("Invalid input") unless &valid($input);

$i*2 until $i > $j;

print "",($n+=2) while $n < 10;

&greet($_) foreach @person;

print "fred is '$fred' , barney is '$barney'\n "  if $I_am_curious;

5.裸块(naked)控制结构

所谓裸块(naked)就是指没有关键字或条件的快。

eg:

while(condition){

body;

body;

body;

}

去掉关键字和条件表达式:

{

body;

body;

body;

}

naked block 可以提供一个临时词法变量的作用域。

6.自递增与自递减

7.for 控制结构

for、 foreach 在perl中完全等价。

8.循环控制

1.last   相当于break

2.next  相当于continuous

3.redo  表示回到当前循环块的开头,但不测试任何条件表达式或进入下一个迭代。

last/next/redo都是对最内层循环块。

9.逻辑操作符(&& ||)

逻辑操作符有短路问题。但perl的逻辑操作符short-circuit逻辑操作符的值是最后被计算的部分,而不是一个布尔值。

10.三元操作符(?:)

11.使用部分计算操作符的控制结构

特点:对于&& 、|| 、?:有个共同属性即依赖于左侧值的真假,他们可能计算或不计算一个表达式。

eg:

($a > 10) || print "why is it not greater?\n";

perl之更多的控制结构的更多相关文章

  1. perl基本语法

    标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点 ...

  2. Perl语言编程(大骆驼)

    啰嗦几句 Perl的时代已经过去,现在年轻的同事们基本上都在用Python了.但个人认为单就生物信息文本处理而言,Perl语言是绝对够用的.最主要的是,前辈们搭建的流程大多数是Perl写的,因此,如果 ...

  3. About_类与对象02

    FCKeditor文本编辑程序(共享软件)为用户提供在线的文档编辑服务,其具有与微软office软件一样的功能,与之不同的是FCKeditor不需要用户安装任何形式的客户端,FCKeditor程序非常 ...

  4. 结束C#2的讲解:最后的一些特性

    分部类型 可以在多个源文件中为一个类型编写代码.特别适合用于部分代码是自动生成,而其他部分的代码为手动类型. 多个源代码文件组成的类型为分部类型 #region 7-1演示分部类型的混合声明 part ...

  5. C#复习笔记(3)--C#2:解决C#1的问题(结束C#2的内容:最后一些特性)

    结束C#2的内容:最后一些新性 这是本章要讲的内容: 分部类型:可以在多个源文件中为 一个类型编写代码. 特别适用于部分代码是自动生成, 而其他部分的代码为手写的类型. 静态类:对工具类进行整理, 以 ...

  6. c++为什么要面向对象?

    前言 c和c++的区别是什么?不可置否,最重要的就是c++的编程思想是面向对象,而c的编程思想是面向过程,这是它们的本质区别,如果你在使用c++编程时使用的还是面向过程的编程思想,那么还不如使用c,因 ...

  7. 模仿淘宝首页写的高仿页面,脚本全用的原生JS,菜鸟一枚高手看了勿喷哈

    自己仿照淘宝首页写的页面,仿真度自己感觉可以.JS脚本全是用原生JavaScript写得,没用框架.高手看了勿喷,请多多指正哈!先上网页截图看看效果,然后上源码: 上源码,先JavaScript : ...

  8. Perl的IO操作(2):更多文件句柄模式

    open函数除了> >> <这三种最基本的文件句柄模式,还支持更丰富的操作模式,例如管道.其实bash shell支持的重定向模式,perl都支持,即使是2>&1 ...

  9. Perl 学习笔记-高级控制结构

    1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码;  unless(<condition>){code...;} 等价于  if(<con ...

随机推荐

  1. Java语言规范 第3章 词法

  2. scrapy框架中Spiders用法

    scrapy框架中Spiders用法 Spider类定义了如何爬去某个网站,包括爬取的动作以及如何从网页内容中提取结构化的数据 总的来说spider就是定义爬取的动作以及分析某个网页 工作流程分析 以 ...

  3. CF #536div2E(dp)

    简单入门版:洛谷1280 时间交叉和倒序处理的思路是相同的,相较之下此题更多的条件是:1.每个任务可以在很多个时间点中选一个去做:2.会有捣乱. 解决方法:1.每个时间点选哪个根据规则的话是固定的可预 ...

  4. siege官方文档(译)(二)

    WHY DO I NEED IT? Siege was written for both web developers and web systems administrators. siege是为了 ...

  5. UG 常用设置

    Q01:UG制图,添加基本视图之后的中心线怎么去掉? A01:“菜单-->文件-->首选项-->制图-->视图-->公共-->常规-->□带中心线创建”,取消 ...

  6. Dubbo端口占用错误信息

    SEVERE: Exception sending context initialized event to listener instance of class com.common.SysCont ...

  7. HTML表单设计

    一.表单标记 <form>...</form> <form></form>定义表单的开始位置和结束位置,表单提交时的内容就是<form>表单 ...

  8. SSAS中雪花模型

    上面的[销售事实表]与[门店]维度.[集团]维度就组成了一个雪花模型. 1.可以把[集团]关联到[门店]的维度上去: 2.如果要把[集团]作为一个单独的维度,先在[维度]里把Dim_Group添加进来 ...

  9. springmvc整合elasticsearch

    网上大多时关于springboot整合的,也有spring的,但是 坑太多,都没法愉快的玩耍 这篇让我整合成功 https://www.cnblogs.com/sunny1009/articles/7 ...

  10. Oracle 修改密码(忘记登录密码,用户System)

    1.修改计算机环境变量,把oracle服务端路径放在最前面 2.输入cmd 3.输入命令:sysplus /nolog SQL>conn sys/syspwd as sysdba SQL> ...