一、算数运算符

**:是幂 结果不能超过数的范围 当指数为小数时 底数不能为负数

%:取余数  两边的操作数为整数,如果不是则要截取,把所有的小数部分去掉

注意:当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为零, '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的运算符的更多相关文章

  1. Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线。

    Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.

  2. Perl语言入门

    Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl语法基础: (1)Perl程序由声 ...

  3. Perl语言入门14-17

    ---------第十四章 字符串与排序------------------- index查找子字符串 my $stuff = "howdy world!"; my $where ...

  4. Perl 语言入门1-5

    第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/lo ...

  5. Perl语言入门10-13

    ----------第十章 其他控制结构---------------- unless结构 unless($fred =~ /\A[A-Z_\w*\z]/i){print "yes" ...

  6. C语言入门(5)——运算符与表达式

    C语言中运算符和表达式数量之多,在高级语言中是少见的.正是丰富的运算符和表达式使C语言功能十分完善.这也是C语言的主要特点之一. C语言的表达式由运算符.常量及变量构成.C语言表达式基本遵循一般代数规 ...

  7. Perl语言入门(中文版)(第6版) 东南大学出版社

    第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? ...

  8. Perl 语言入门6-9

    ---- 第6章 哈希----------- 简介 键值对.键和值都是任意标量,但键总是会被转换成字符串. 键唯一,值可重复. 应用场景:一组数据对应到另一组数据时. 如找出重复/唯一/交叉引用/查表 ...

  9. Perl语言入门--3--文件读取与写入

    现有文件test.txt,内容为:"123\n456" 1,打开文本test.txt #!/usr/bin/perl open d,"test.txt"; d ...

随机推荐

  1. PAT 乙级 1045

    题目 题目地址:PAT 乙级 1045 题解 本题的解法比较巧妙,刚开始的试着用暴力求解,果不其然时间超限…… 变换思路,既然对于每个元素来说满足的条件是前小后大,那么对数组排序,对应的位置相等的即为 ...

  2. 【思维题 单调栈】loj#2430. 「POI2014」沙拉餐厅 Salad Bar

    t老师的做法好神…… 题目描述 桌面上有 n 个水果,分别是苹果和橘子.Bytea需要从水果中选择连续的一个区间,并从左到右或从右到左拿水果,且过程中橘子的数量必须始终不小于苹果的数量.求最长的区间大 ...

  3. pandas的数据联级

    一.索引的堆(stack) 1.行列的转化: Stack():列转行 Unstack():行转列 Stack对应行, 使用小技巧:使用stack()的时候,level等于哪一个,哪一个就消失,出现在行 ...

  4. MySQL的GTID复制与传统复制的相互切换

    MySQL的GTID复制与传统复制的相互转换 1. GTID复制转换成传统复制 1.1 环境准备 1.2 停止slave 1.3 查看当前主从状态 1.4 change master 1.5 启动主从 ...

  5. 【php】【异步】php实现异步的几种方法

    请参考  4种php常用的异步执行方式 ajax 和 img 的 src 属性 系统指令调用 (在php代码里面调用系统指令) curl socket通信 ​

  6. 微软与百度合作:win10搜索引擎默认百度

    全球最大的中文搜索引擎百度公司与微软公司共同宣布双方展开战略合作.百度并将成为中国市场上Windows 10 Microsoft Edge浏览器的默认主页和搜索引擎.也就是说,将来人们在win10的M ...

  7. python模块之pickle

    和json不同的是: json只支持str,int,tuple,list,dict. pickle支持python里所有的数据类型,但是只能在python里序列化,不跨平台,python独有. 代码示 ...

  8. 10个MCU常用的基础知识

    转自:http://bbs.21ic.com/icview-2659278-1-1.html 1.MCU有串口外设的话,在加上电平转换芯片,如MAX232.SP3485就是RS232和RS485接口了 ...

  9. Power Calculus UVA - 1374 迭代加深搜索

    迭代加深搜索经典题目,好久不做迭代加深搜索题目,拿来复习了,我们直接对当前深度进行搜索,注意剪枝,还有数组要适当开大,因为2^maxd可能很大 题目:题目链接 AC代码: #include <i ...

  10. Mysql源码编译安装&主从复制

    一)camke源码编译安装mysql 1)创建软件安装目录software [root@master software]# ls cmake-2.8.8.tar.gz mysql-5.5.32.tar ...