Perl语言入门--2--perl的运算符
一、算数运算符
**:是幂 结果不能超过数的范围 当指数为小数时 底数不能为负数
%:取余数 两边的操作数为整数,如果不是则要截取,把所有的小数部分去掉
注意:当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为零, '2'+1=3 'a'+1=1
二、数字比较运算符
大于小于等于 :比较结果为真或非零 ,假或零
<=> : 比较运算 $a <=> $b
当a大于b时:值为1
当a小于b时:值为-1
当a等于b时:值为0
用这个运算符的时候,自动把操作数转化为整数,不能转化为整数的则值为零
注意:因为浮点数不精确 不要把值相近的数拿来进行比较
三、字符串比较
四、字符串连接和重复
. :点是连接符 $a='a'.'b' -->变为 'ab'
在print是可以直接写print $a$b - ->效果和这个一样 print $a.$b
x : 重复 (x前后有空格,为了和变量名分开) 'a' x 5 - -> 'aaaaa'
如果重复次数小于1 则返回空串
四、逻辑运算符
&&(and) ||(or) !(not) xor
这个逻辑运算符左右跟的是布尔类型的值 先算左边的 在算右边的
五、赋值运算符
$a +=1 - ->等同于$a =$a +1
可以连等 :$a=$b=3 - ->$a =3 $b=3
六、自增 自减
++var-- $var2=$var1 +++$var1 #这两种用法是不行的
1、可以用做字符串的自增:$a='az'; $a++ 就变为 $a='ba'
2、不可以用做字符串的自减:当$a--时 按数字运算,将字符串先转化为0再自减
3、当字符串中有数字时,或非字母和数字的符号(比如#$@#$%^),自增也是先变为0再自增
比如‘ab$c’ 'we5a'
4、预增: $b=++$a #$a先自增在赋值 # $a=1 $b =++$a; $a=2 $b=2
后增:$b=$a++ #$a先赋值再自增 # $a=1 $b =$a++; $a=2 $b=1
七、逗号
就是一个连接的作用: $a+=1 , $b=$a; ==> $a +=1 ; $b=$a;
没什么卵用
八、条件运算符
三个操作数:先对条件表达式运算,为真时执行问号(?)后面的运算,为假时执行冒号(:) 后的运算。
$result = $var == 0 ? 14 : 7 #一般只用于简单的条件 太复杂的就不如if语句看着直观了
九、运算符的优先级(precedence)
自增自减最高,单操作数高于多操作数(就是取值、赋值之类的高于加减),数字运算 > 比较运算(大于小于等于什么的,但大于小于(<>)高于等于(==)和不等于(!=))
> 位运算 > 赋值运算(=) > 逻辑运算
十、结合性(associativity)
结合性associativity:表达式中多个符号是同一优先级时,哪个先算,哪个后算?是先算左边的(左结合性),还是先算右边的(右结合性)
一般都是左结合性:先算左 再算右
右结合性:除了(**)以外 、一般根本见不到
举个栗子: $a =$b=1 #一起赋值
$a=$b+=1 #先算b加一 再赋值给a
当不知道优先顺序时,加括号,解决所有问题
Perl语言入门--2--perl的运算符的更多相关文章
- Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线。
Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.
- Perl语言入门
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl语法基础: (1)Perl程序由声 ...
- Perl语言入门14-17
---------第十四章 字符串与排序------------------- index查找子字符串 my $stuff = "howdy world!"; my $where ...
- Perl 语言入门1-5
第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/lo ...
- Perl语言入门10-13
----------第十章 其他控制结构---------------- unless结构 unless($fred =~ /\A[A-Z_\w*\z]/i){print "yes" ...
- C语言入门(5)——运算符与表达式
C语言中运算符和表达式数量之多,在高级语言中是少见的.正是丰富的运算符和表达式使C语言功能十分完善.这也是C语言的主要特点之一. C语言的表达式由运算符.常量及变量构成.C语言表达式基本遵循一般代数规 ...
- Perl语言入门(中文版)(第6版) 东南大学出版社
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? ...
- Perl 语言入门6-9
---- 第6章 哈希----------- 简介 键值对.键和值都是任意标量,但键总是会被转换成字符串. 键唯一,值可重复. 应用场景:一组数据对应到另一组数据时. 如找出重复/唯一/交叉引用/查表 ...
- Perl语言入门--3--文件读取与写入
现有文件test.txt,内容为:"123\n456" 1,打开文本test.txt #!/usr/bin/perl open d,"test.txt"; d ...
随机推荐
- 简单的Datable转List方法
public static class DataTableUtils<T> where T : new() { public static List<T> ConvertToM ...
- vscode的eslint插件不起作用
最近在用vue进行开发,但是vsCode中的eslint插件装上之后不起作用 1.vsCode打开“设置”,选择"settings.json" 2.输入一段脚本 "esl ...
- 洛谷 P5015 标题统计
第一道题很简单,标签:字符串.模拟. 只需要一个判断去除空格就对了: if(a[i]!=' ' && a[i]!='\n') v++; code: #include<iostre ...
- Netcore 基础之TagHelper知识
饮水思源,来自:http://www.cnblogs.com/liontone 的BLOG中关于taghelper中的内容 概要 TagHelper是ASP.NET 5的一个新特性.也许在你还没有听说 ...
- Hive学习笔记(三)-- DML和DDL操作
01-Hive表的DDL操作--修改表 创建一个分区表并加载数据 查询数据 修改表 加载数据 查询一下 另外一个命令查询表的分区 如何删除一个分区呢 查询一个,分区被删除了 修改表名 查询改名的新表的 ...
- luogu2455 [SDOI2006]线性方程组 高斯消元法
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int n, ...
- 记一次WMS的系统改造(2)-敲定方案
既定改造方案 基于上一篇分析出的种种问题,我们将库房人员的系统操作划分为两大类. 第一类为货物驱动的操作,这类操作主要随着货物而前进,人员不看或者看软件的次数比较少,更多是对货物的状态进行系统上的确认 ...
- IO Streams:缓冲流
我们迄今为止看到的大多数示例都使用无缓冲的I / O.这意味着每个读或写请求都由底层操作系统直接处理.这使程序效率变得很低,因为每个这样的请求经常触发磁盘访问,网络活动或一些相对昂贵的其他操作. 为了 ...
- 【转】关于AI的目标导向型行动计划
作者:Brent Owens 目标导向型行动计划(简称GOAP)是一种能够轻松呈现给你的代理选择的AI系统,也是帮助你可以无需维持一个庞大且复杂的有限状态机而做出明智的决策的机器. 演示版本 在这一演 ...
- php默认有最大执行时间
执行php默认有最大执行时间,默认30s,修改,不能设置’1h’,貌似单位不能修改