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 ...
随机推荐
- 关于WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter源码分析
前言:优先级高于ResourceServerConfigurer,用于保护oauth相关的endpoints,同时主要作用于用户的登录(form login,Basic auth) WebSecuri ...
- NFV网络功能虚拟化 基本概念
NFV基本概念 NFV则由运营商联盟提出,为了加速部署新的网络服务,运营商倾向于放弃笨重昂贵的专用网络设备,转而使用标准的IT虚拟化技术来拆分网络功能模块,如DNS.NAT.Firewall等.于是一 ...
- php介绍
PHP 简介 PHP 是服务器端脚本语言. 您应当具备的基础知识 在继续学习之前,您需要对以下知识有基本的了解: HTML CSS 如果您希望首先学习这些项目,请在我们的 首页 访问这些教程. PHP ...
- 1.Linux下生成密钥
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文 ...
- openLayers 3 之入门
openLayers 3 之入门 openlayer是web GIS客户端开发提供的javascript类库,也是开源框架,可以加载本地数据进行展示地图 1.下载相关引用的js.css文件 2.类似于 ...
- C# HTTP请求GET,POST
转自原文 [C#]HTTP请求GET,POST HTTP定义了与服务器交互的不同方法,基本方法有GET,POST,PUT,DELETE,分别对于查,该,增,删.一般情况下我们只用到GET和POST,其 ...
- Linux运维常见故障排查和处理的33个技巧汇总
作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...
- 深入理解Javascript中构造函数和原型对象的区别(转存)
Object是构造函数,而Object.prototype是构造函数的原型对象.构造函数自身的属性和方法无法被共享,而原型对象的属性和方法可以被所有实例对象所共享. 首先,我们知道,构造函数是生成对象 ...
- Python进程监控-MyProcMonitor
psutil api文档: http://pythonhosted.org/psutil/ api 测试 #! /usr/bin/env python # coding=utf-8 import ps ...
- 【297】IDL 过程、函数&关键字参数
目录: 一.Procedure 1.1 基本说明&定义 1.2 关键字参数 二.Function 2.1 基本说明&定义 2.2 关键字参数 参考:IDL中函数中的带有关键字的参数的使 ...