perl之更多的控制结构
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之更多的控制结构的更多相关文章
- perl基本语法
标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点 ...
- Perl语言编程(大骆驼)
啰嗦几句 Perl的时代已经过去,现在年轻的同事们基本上都在用Python了.但个人认为单就生物信息文本处理而言,Perl语言是绝对够用的.最主要的是,前辈们搭建的流程大多数是Perl写的,因此,如果 ...
- About_类与对象02
FCKeditor文本编辑程序(共享软件)为用户提供在线的文档编辑服务,其具有与微软office软件一样的功能,与之不同的是FCKeditor不需要用户安装任何形式的客户端,FCKeditor程序非常 ...
- 结束C#2的讲解:最后的一些特性
分部类型 可以在多个源文件中为一个类型编写代码.特别适合用于部分代码是自动生成,而其他部分的代码为手动类型. 多个源代码文件组成的类型为分部类型 #region 7-1演示分部类型的混合声明 part ...
- C#复习笔记(3)--C#2:解决C#1的问题(结束C#2的内容:最后一些特性)
结束C#2的内容:最后一些新性 这是本章要讲的内容: 分部类型:可以在多个源文件中为 一个类型编写代码. 特别适用于部分代码是自动生成, 而其他部分的代码为手写的类型. 静态类:对工具类进行整理, 以 ...
- c++为什么要面向对象?
前言 c和c++的区别是什么?不可置否,最重要的就是c++的编程思想是面向对象,而c的编程思想是面向过程,这是它们的本质区别,如果你在使用c++编程时使用的还是面向过程的编程思想,那么还不如使用c,因 ...
- 模仿淘宝首页写的高仿页面,脚本全用的原生JS,菜鸟一枚高手看了勿喷哈
自己仿照淘宝首页写的页面,仿真度自己感觉可以.JS脚本全是用原生JavaScript写得,没用框架.高手看了勿喷,请多多指正哈!先上网页截图看看效果,然后上源码: 上源码,先JavaScript : ...
- Perl的IO操作(2):更多文件句柄模式
open函数除了> >> <这三种最基本的文件句柄模式,还支持更丰富的操作模式,例如管道.其实bash shell支持的重定向模式,perl都支持,即使是2>&1 ...
- Perl 学习笔记-高级控制结构
1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码; unless(<condition>){code...;} 等价于 if(<con ...
随机推荐
- 学习Spring Boot看这两个开源项目就够了!非得值得收藏的资源
Spring Boot我就不做介绍了,大家都懂得它是一个多么值得我们程序员兴奋的框架. 为什么要介绍这两个开源项目呢? 1.提供了丰富的学习实践案例 2.整合了非常多优质的学习资源 不多说了,直接上链 ...
- 解决https接口 以及谷歌错误
<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"& ...
- python对数据库的操作
一 Python 操作 MySQL import pymysql pip install pymysql (1) 连接MySQL数据库 db = pymysql.connect(主机名,用户名,密 ...
- python之函数名,闭包、迭代器
一.函数名的运用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量. 1,函数名的内存地址: def func(): print("呵呵") pr ...
- jQuery offset()源码解析
首先是原型上的offset方法,根据arguments判断到底是取值还是设值.如果是设置,就遍历调用静态方法jQuery.offset.setOffset 如果是取值.那么就是从"var d ...
- JavaScript中,关于class的调用
PS:class的调用,其实是可以叠加的,当然了这要求样式不同的情况下,如果样式相同,则后一个样式会覆盖前一个样式. 1.举例如下: <div id="test" class ...
- Android仿ios底部弹出框效果
准备: public class ActionSheet { public interface OnActionSheetSelected { void onClick(int whichButton ...
- uvm_reg_item——寄存器模型(五)
uvm_reg_item 扩展自uvm_sequence_item,也就说寄存器模型定义了transaction item. adapter 的作用是把这uvm_reg_item转换成uvm_sequ ...
- 使用POI创建word表格合并单元格兼容wps
poi创建word表格合并单元格代码如下: /** * @Description: 跨列合并 */ public void mergeCellsHorizontal(XWPFTable table, ...
- Linux下的I/O复用
读书笔记 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能至关重要. Linux下实现I/O复用的系统调用主要有select, poll, epoll. select: 用户通过3个参数 ...