`
天梯梦
  • 浏览: 13629839 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Perl 第三章 操作符

 
阅读更多

【 算術操作符 】

 

 +(加)、-(減)、*(乘)、/(除)、**(乘冪)、%(取余)、-(單目負)
 (1)乘冪的基數不能為負,如 (-5) ** 2.5 # error;
 (2)乘冪結果不能超出計算機表示的限製,如10 ** 999999 # error
 (3)取余的操作數如不是整數,四舍五入成整數后運算;運算符右側不能為零
 (4)單目負可用於變量︰ - $y ; # 等效於 $y * -1

 

【 整數比較操作符 】

 

操作符 描述
< 小於
> 大於
== 等於
<= 小於等於
>= 大於等於
!= 不等於
<=> 比較,返回1, 0, or -1

 操作符<=>結果為︰
  0 - 兩個值相等
  1 - 第一個值大
   -1 - 第二個值大

 

【 字符串比較操作符 】

 

操作符 描述
lt 小於
gt 大於
eq 等於
le 小於等於
ge 大於等於
ne 不等於
cmp 比較,返回1, 0, or -1

 

【 邏輯操作符 】

 

 邏輯或︰$a || $b 或 $a or $b
 邏輯與︰$a && $b 或 $a and $b
 邏輯非︰! $a 或 not $a
 邏輯異或︰$a xor $b

 

【 位操作符 】

 

 位與︰&
 位或︰|
 位非︰~
 位異或︰^
 左移︰$x << 1
 右移︰$x >> 2
 注︰不要將&用於整數,因為PERL將會把它們轉化為無符號數。

 

【 賦值操作符 】

 

賦值操作符︰

操作符 描述
= Assignment only
+= Addition and assignment
-= Subtraction and assignment
*= Multiplication and assignment
/= Division and assignment
%= Remainder and assignment
**= Exponentiation and assignment
&= Bitwise AND and assignment
|= Bitwise OR and assignment
^= Bitwise XOR and assignment

賦值操作符例子︰

表達式 等效表達式
$a = 1; none (basic assignment)
$a -= 1; $a = $a - 1;
$a *= 2; $a = $a * 2;
$a /= 2; $a = $a / 2;
$a %= 2; $a = $a % 2;
$a **= 2; $a = $a ** 2;
$a &= 2; $a = $a & 2;
$a |= 2; $a = $a | 2;
$a ^= 2; $a = $a ^ 2;

 

=可在一個賦值語句中出現多次,如︰
  $value1 = $value2 = "a string";  =作為子表達式
  ($a = $b) += 3;
 等價於
 $a = $b;
 $a += 3;
 但建議不要使用這種方式。

 

【 自增自減操作符 】

 

  ++、--(與C++中的用法相同)
 不要在變量兩邊都使用此種操作符︰++$var-- # error
 不要在變量自增/減後在同一表達式中再次使用︰$var2 = $var1 + ++$var1; # error
 在PERL中++可用於字符串,但當結尾字符為'z'、'Z'、'9'時進位,如︰

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

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

 $stringvar = "abz";
 $stringvar++; # $stringvar now contains "aca"

 $stringvar = "AGZZZ";
 $stringvar++; # $stringvar now contains "AHAAA"

 $stringvar = "ab4";
 $stringvar++; # $stringvar now contains "ab5"

 $stringvar = "bc999";
 $stringvar++; # $stringvar now contains "bd000"
 

 不要使用--,PERL將先將字符串轉換為數字再進行自減

$stringvar = "abc";
$stringvar--; # $stringvar = -1 now

 

 如果字符串中含有非字母且非數字的字符,或數字位於字母中,則經過++運算前值轉換為數字零,因此結果為1,如︰

 $stringvar = "ab*c";
 $stringvar++;
 $stringvar = "ab5c";
 $stringvar++;
 

【 字符串聯結和重複操作符 】

 

聯接: .
 重複︰x
 聯接且賦值(類似+=)︰ .=
例︰

 $newstring = "potato" . "head";
 $newstring = "t" x 5;
 $a = "be";
 $a .= "witched"; # $a is now "bewitched"
 

【 逗號操作符 】

 

 其前面的表達式先進行運算,如︰

$var1 += 1, $var2 = $var1;

  等價於

 $var1 += 1;
 $var2 = $var1;

 

 使用此操作符的唯一理由是提高程序的可讀性,將關系密切的兩個表達式結合在一起,如︰

 $val = 26;
 $result = (++$val, $val + 5); # $result = 32
 

 注意如果此處沒有括號則意義不同︰

 $val = 26;
 $result = ++$val, $val + 5; # $result = 27
 

【 條件操作符 】

 

   與C中類似,條件?值1:值2,當條件為真時取值1,為假時取值2,如︰

 $result = $var == 0 ? 14 : 7;
 $result = 43 + ($divisor == 0 ? 0 : $dividend / $divisor);
 

 PERL 5中,還可以在賦值式左邊使用條件操作符來選擇被賦值的變量,如︰

 $condvar == 43 ? $var1 : $var2 = 14;
 $condvar == 43 ? $var1 = 14 : $var2 = 14;
 

【 操作符的次序 】

 

操作符的次序︰

操作符 描述
++ , -- 自增,自減
- , ~ , ! 單目
** 乘方
=~ , !~ 模式匹配
* , / , % , x 乘,除,取餘,重複
+ , - , . 加,減,聯接
<< , >> 移位
-e , -r , etc. 文件狀態
< , <= , > , >= , lt , le , gt , ge 不等比較
== , != , <=> , eq , ne , cmp 相等比較
& 位與
| , ^ 位或,位異或
&& 邏輯與
|| 邏輯或
.. 列表範圍
? and : 條件操作符
= , += , -= , *= , 賦值
and so on  
, 逗號操作符
not Low-precedence logical NOT
and Low-precedence logical AND
or , xor Low-precedence logical OR and XOR

操作符結合性(associativity)︰

操作符 結合性
++ , --
- , ~ , ! Right-to-left
** Right-to-left
=~ , !~ Left-to-right
* , / , % , x Left-to-right
+ , - , . Left-to-right
<< , >> Left-to-right
-e , -r ,
< , <= , > , >= , lt , le , gt , ge Left-to-right
== , != , <=> , eq , ne , cmp Left-to-right
& Left-to-right
| , ^ Left-to-right
&& Left-to-right
|| Left-to-right
.. Left-to-right
? and : Right-to-left
= , += , -= , *= , Right-to-left
and so on  
, Left-to-right
not Left-to-right
and Left-to-right
or , xor Left-to-right

 

邏輯或︰$a || $b 或 $a or $b
 邏輯與︰$a && $b 或 $a and $b
 邏輯非︰! $a 或 not $a
 邏輯異或︰$a xor $b

 

 

 

 

分享到:
评论

相关推荐

    perl基础教程(总共十九章)

    第一章 perl概述 第二章 集腋成裘 第三章 单目和双目操作符 ...... 第十九章 命令行接口

    (Perl 语言编程-第三版 作者:Larry Wall, Tom Christiansen, and Jon Orwant 译者:何伟平)Perl .chm

    第三章 单目和双目操作符 第四章 语句和声明 第五章 模式匹配 第六章 子过程 第七章 格式 第八章 引用 第九章 数据结构 第十章 包 第十一章 模块 第十二章 对象(上) 第十二章 对象(下) 第十三章 重载 第...

    Perl 语言入门 第六版

    第三章列表与数组 访问数组中的元素 特殊的数组索引 列表直接量 qw简写 列表的赋值 pop和push操作符 shift和unshift操作符 splice操作符 字符串中的数组内插 foreach控制结构 Perl最喜欢用的默认变量:$_...

    Perl5语言全教程

    第三章 操作符 一、算术操作符 二、整数比较操作符 三、字符串比较操作符 四、逻辑操作符 五、位操作符 六、赋值操作符 七、自增自减操作符 八、字符串联结和重复操作符 九、逗号操作符 十、条件操作符 十一、操作...

    Perl语言入门(第五版-中文版).pdf

    第三章列表与数组 .访问数组中的元素 特殊的数组索引值 列表直接量 列表的赋值 字符串中的数组内插 foreach控制结构 标量上下文与列表上下文 列表上下文中的(stdin) 习题 第四章子程序 定义子程序 调用...

    perl 程序开发教程

    第三章 操作符 一、算术操作符 二、整数比较操作符 三、字符串比较操作符 四、逻辑操作符 五、位操作符 六、赋值操作符 七、自增自减操作符 八、字符串联结和重复操作符 九、逗号操作符 十、条件操作符 十一、操作...

    Perl 实例精解(第三版).pdf

    第3章 获得打印句柄 3.1 文件句柄 3.2 字 3.2.1 引号 3.2.2 实量(常量) 3.3 print函数 3.3.1 打印实量 3.3.2 警告编译指示和-w开关 3.3.3 strict编译指示和字 3.4 printf函数 3.4.1 ...

    Perl Testing程序高手秘笈

    第三章 管理测试 测试的组织 检查覆盖率 编写测试库 对测试库的测试 编写测试用具 通过网络运行测试 自动运行测试 第四章 与代码一起发布测试 测试文档覆盖率 测试整个模块 让用户决定 让用户决定(续) 模块测试...

    简明perl教材.pdf(附函数集)

    第三章 操作符 第四章 列表和数组变量 第五章 文件读写 第六章 模式匹配 第七章 控制结构 第八章 子程序 第九章 关联数组/哈希表 第十章 格式化输出 第十一章 文件系统 第十二章 Perl5 中的引用/指针 第十三章 Perl ...

    Perl Testing程序高手秘籍

    第三章管理测试 测试的组织 检查覆盖率 编写测试库 对测试库的测试 编写测试用具 通过网络运行测试 自动运行测试 第四章与代码一起发布测试 测试文档覆盖率 测试整个模块 让用户决定 让用户决定(续) 模块测试打包 ...

    PERL编程24学时教程.pdf

    第三部分 将Perl用于CGI 第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装...

    Perl编程24学时教程(PDF格式,共24章)

    第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何使用Perl进行CGI编程,第四部分(即附录)讲述如何在不同的操作系统下安装Perl的各个模块。 本书结构清晰,讲解透彻,通俗易懂...

    PERL编程24学时教程

    第三部分 将Perl用于CGI 第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装...

    perl编程24学时教程.rar

    第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何使用Perl进行CGI编程,第四部分(即附录)讲述如何在不同的操作系统下安装Perl的各个模块。 本书结构清晰,讲解透彻,通俗易懂...

    perl语言脚本文档说明

    第三部分 将Perl用于CGI 第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在...

    Perl高级教程人称“大骆驼”(免费)

    第一章 Perl概述............................................................................................................................10 1.1 从头开始.................................................

    24日学好Perl语言

    第三部分 将Perl用于CGI 第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装...

Global site tag (gtag.js) - Google Analytics