Perl 学习笔记-高级控制结构
1.unless控制结构
类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码; unless(<condition>){code...;} 等价于 if(<condition>){}else{code...;} 也就是当条件为假是执行.
unless () {
print "Hello"; #Hello
}
2. until控制结构
until就是改装过的while, 区别在于它在条件为假是执行代码块.
$i = ;$j = ;
until($i>$j){
$i++;
print "Hello\n";
}
3.条件修饰词
为了进一步简化表达, 表达式后面可以接着一个用来控制它的修饰词, 例如if修饰词可以用来模拟一个if块. print "Hello Roger" if ; #无输出 虽然条件写在后面, 但是仍然是先执行, 实际上就是一个if控制块; 所以学习Perl的时候先把语句读完才能理解意义.
有一些限制: 修饰词两边都只能写单个表达式, 修饰词的左边不能放多条语句, foreach只能用$_变量.
4.裸块控制结构
包含在花括号内, 相当于一个只执行一次的伪循环,在为临时词法变量圈定有效范围时很有效. 当某个变量只会在几行代码里用到时, 可以放它们在一个裸块里, 并就近声明变量.
5.elsif子句 -- 注意不是 elseif
if(<condition>){
}elsif(<condition2>){
}elsif(<condition3>){
}else{
}
6.自增自减
对Perl中的标量的操作,类似C语言. 也分前后, 效果和C语言一致.
7.for控制结构
感觉很像PHP里面的for循环,哈哈!
for($i=;$i<;++$i){
code...;
}
#写成 for(1..10){}也能运行, 但是不是很规范
8. 3种循环控制
=> last操作
相当于C中的break; 表示立即结束循环. 用法如: last;
=> next操作
相当于C中的continue; 表示立即结束当前迭代; 用法如: next if /<pattern>/;
=> redo操作
控制返回到本次循环的顶端, 不会经过任何条件测试, 也不会进入下一次循环.
可以为块加标签,以便更好地控制, 但是不常见.
9.三目运算符 ?: 和逻辑操作
和C语言中的一致.
"定义否"操作符: // , 由于|| 操作符能提供默认值:undef, 但是没有考虑到特殊情况, 就是已定义的假值, 也可能被意外替换为默认值.
有时需要检查一个标量, 如果没有定义则定义, 如果已经定义了就保留原值: $last_name = $last_name{$someone} // '(No last name)';
|| 和 && 可以使用单词书写: or 和 and, 如 open MYFILE, "myfile.txt" or die "Can't open file myfile.txt!"; ,它们效果相同, 但是优先级要低得多, 所以可以不用写很多括号.
Perl 学习笔记-高级控制结构的更多相关文章
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- DP动态规划学习笔记——高级篇上
说了要肝的怎么能咕咕咕呢? 不了解DP或者想从基础开始学习DP的请移步上一篇博客:DP动态规划学习笔记 这一篇博客我们将分为上中下三篇(这样就不用咕咕咕了...),上篇是较难一些树形DP,中篇则是数位 ...
- Perl 学习笔记-标量数据
最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...
- perl学习笔记(一)
关于Perl: Perl是一种高级.通用.直译式.动态的程序语言.最初设计者拉里·沃尔(Larry Wall)为了让在UNIX上进行报表处理的工作变得更方便,决定开发一个通用的脚本语言,而在1987年 ...
- Perl 学习笔记-列表和数组
笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...
- perl学习笔记二
数组: 特殊的数组索引:加入对索引值超过数组尾端的元素进行赋值,数组将会根据需要自动扩大,只要有可用的内存分配给数组.意外增加的数组元素的值为undef. $a[0]="aa"; ...
- perl学习笔记之:模式匹配,模块,文档
Perl语言的最大特点,也是Perl作为CGI首选语言的最大特点,是它的模式匹配操作符.Perl语言的强大的文本处理能力正是通过其内嵌的对模式匹配的支持体现的.模式通过创建正则表达式实现.Perl的正 ...
- Newtonsoft.Json(Json.Net)学习笔记-高级使用(转)
1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称 7.动态决定属性是否序列化 8.枚举值的自定义格式化问题 9.自定义类型转换 10.全 ...
- perl学习笔记
一.正则表达式 匹配一个文件中的某个单词,并打印出来 #!/usr/bin/perl use strict; use warnings; ; open(FILE, "< temp.pl ...
随机推荐
- Java-Runoob-高级课程:Java 8 新特性
ylbtech-Java-Runoob-高级课程:Java 8 新特性 1.返回顶部 1. Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Or ...
- kotlin学习一:kotlin简介
kotlin是JetBrains公司出品的基于JVM的语言,和其他JVM语言一样,目的在于提供比JAVA更加简介的语法, 同时提供函数式编程,不需要再像JAVA一样所有的一切都要依托于类. kotli ...
- IT运维的定义
IT运维是IT管理的核心和重点部分,也是内容最多.最繁杂的部分,该阶段主要用于IT部门内部日常运营管理,涉及的对象分成两大部分,即IT业务系统和运维人员,该阶段的管理内容又可细分为七个子系统: ...
- node的express中使用socket.io
服务器端server.js代码 var express=require("express"); var http=require("http"); var si ...
- 100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址
在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的 ...
- OpenStack--Cinder(G版)中的volume type
一.volume type的相关操作 Cinder中的卷类型,是卷的一种标识,各个OpenStack的发行者可根据自身对系统的约束来定义卷类型的使用.G版的Cinder中与卷类型相关的两种资源:typ ...
- IIS Manager 配置文件修该,允许跨域CORS访问
IIS Manager 配置文件修该,允许跨域CORS访问 IIS Manager 的api访问会出现跨域问题,需要 IIS Manager的配置文件中修改. 配置文件的路径:C:\Program F ...
- leetcode535
public class Codec { const string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW ...
- tornado异步编程
说明 以下的例子都有2个url,一个是耗时的请求,一个是可以立刻返回的请求,,我们希望的是访问立刻返回结果的请求不会被其他耗时请求影响 非异步处理 现在我们请求sleep然后同时请求justnow,发 ...
- Spring 学习记录4 ResourceLoader
ResourceLoader Spring的ApplicationContext继承了ResourceLoader接口.这个接口主要就是可以加载各种resource.. 接口还是比较简单的: /* * ...