深入学习Perl运算符用法

开发 架构
在学习Perl的过程中经常会遇到Perl运算符问题,你对Perl运算符的概念是否熟悉,这里向大家简单介绍一下,希望对你有所帮助。

本文继续和大家讨论一下Perl运算符的用法,这里介绍的Perl运算符主要包括自增自减运算符,字符串联结和重复运算符,逗号运算符,条件运算符和Perl运算符的优先级等内容,相信通过本文的的介绍你对Perl运算符有全面的认识。

Perl运算符

一、自增自减运算符:++、--

◆不要在变量两边都使用此种操作符:++$var--#error
◆不要在变量自增/减后在同一表达式中再次使用:$var2=$var1+++$var1;#error
◆在PERL中++可用于字符串,但当结尾字符为'z'、'Z'、'9'时进位,如:

$stringvar="abc";
$stringvar++;#$stringvarcontains"abd"now

$stringvar="aBC";
$stringvar++;#$stringvarcontains"aBD"now

$stringvar="abz";
$stringvar++;#$stringvarnowcontains"aca"

$stringvar="AGZZZ";
$stringvar++;#$stringvarnowcontains"AHAAA"

$stringvar="ab4";
$stringvar++;#$stringvarnowcontains"ab5"

$stringvar="bc999";
$stringvar++;#$stringvarnowcontains"bd000"
◆不要使用--,PERL将先将字符串转换为数字再进行自减
$stringvar="abc";
$stringvar--;#$stringvar=-1now

◆如果字符串中含有非字母且非数字的字符,或数字位于字母中,则经过++运算前值转换为数字零,因此结果为1,如:
$stringvar="ab*c";
$stringvar++;
$stringvar="ab5c";
$stringvar++;   #p#

二、Perl运算符之字符串联结和重复运算符

1.联接:.
2.重复:x
3.联接且赋值(类似+=):.=
例:
$newstring="potato"."head";
$newstring="t"x5;
$a="be";
$a.="witched";#$aisnow"bewitched"

三、Perl运算符之逗号运算符

其前面的表达式先进行运算,如:
$var1+=1,$var2=$var1;
等价于
$var1+=1;
$var2=$var1;

使用此操作符的唯一理由是提高程序的可读性,将关系密切的两个表达式结合在一起,如:
$val=26;
$result=(++$val,$val+5);#$result=32
注意如果此处没有括号则意义不同:
$val=26;
$result=++$val,$val+5;#$result=27

四、Perl运算符之条件运算符

与C中类似,条件?值1:值2,当条件为真时取值1,为假时取值2,如:
$result=$var==0?14:7;
$result=43+($divisor==0?0:$dividend/$divisor);
PERL5中,还可以在赋值式左边使用条件操作符来选择被赋值的变量,如:
$condvar==43?$var1:$var2=14;
$condvar==43?$var1=14:$var2=14;

五、Perl运算符的优先级

Table5.运算符的优先级


【编辑推荐】

  1. 学习笔记 解析六大Perl运算符用法
  2. Perl文件句柄概念详解
  3. Perl二维数组用法全程剖析
  4. 学习笔记 Perl数字与字符串间的自动转换
  5. Perl文字处理模式(regularexpresion)相关的运算符及函数

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-20 14:52:51

Perl语法

2010-07-14 17:36:00

Perl运算符

2010-07-14 13:18:40

Perl开发工具

2010-07-16 16:09:05

Perl文件

2010-08-26 09:58:01

CSS clear

2020-10-15 08:11:56

JavaScript逻辑运算符

2009-08-11 15:51:08

C#运算符算术运算符

2009-08-12 15:02:49

C#赋值运算符简单赋值运算符

2009-08-14 10:16:57

C#运算符重载

2009-08-12 15:20:18

C#赋值运算符复合赋值运算符

2010-07-12 15:00:56

UML状态机视图

2010-08-24 09:52:55

DIV标签

2010-10-08 09:17:07

JavaScript表JavaScript运

2023-04-10 08:58:13

C#关系运算符

2010-09-02 09:09:38

display:inlCSS

2010-08-19 12:55:55

CSSMarginPadding

2010-07-12 13:09:05

UML协作图

2010-08-23 09:01:45

MarginPadding

2015-09-29 08:57:46

javascript对象

2024-02-26 15:17:20

点赞
收藏

51CTO技术栈公众号