一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - perl - perl操作符詳細說明

perl操作符詳細說明

2020-05-31 11:07perl教程網 perl

本文主要講解perl語言中操作符的使用詳細說明,有需要的朋友可以參考一下.

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

 

Table 3.1. 整數比較操作符

操作符

描述

<

小于

>

大于

==

等于

<=

小于等于

>=

大于等于

!=

不等于

<=>

比較,返回 1, 0, or -1


操作符<=>結果為:
  0 - 兩個值相等
  1 - 第一個值大
  1 - 第二個值大
三、字符串比較操作符
 

Table 3.2. 字符串比較操作符

操作符

描述

 

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將會把它們轉化為無符號數。
六、賦值操作符
 

Table 3.3. 賦值操作符

操作符

描述

=

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

 

Table 3.4. 賦值操作符例子

表達式

等效表達式

$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;
十一、操作符的次序
 

Table 3.6. 操作符次序

操作符

描述

++, --

自增,自減

-, ~, !

單目

**

乘方

=~, !~

模式匹配

*, /, %, 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):

Table 3.7. 操作符結合性

操作符

結合性

++, --

-, ~, !

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



建議:
  1、當你不確定某操作符是否先執行時,一定要用括號明確之。
  2、用多行、空格等方式提高程序的可讀性。

延伸 · 閱讀

精彩推薦
  • perlperl常見問題集合之二

    perl常見問題集合之二

    哪些平臺上有 Perl?要到哪里去找? Perl的標準發行版(由 perl 發展小組負責維護)僅以原始碼形式發行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz處取得。這個檔...

    腳本之家2102020-05-29
  • perlPerl使用nginx FastCGI環境做WEB開發實例

    Perl使用nginx FastCGI環境做WEB開發實例

    這篇文章主要介紹了Perl使用nginx FastCGI環境做WEB開發實例,實現了路由系統和模板系統,需要的朋友可以參考下...

    Perl教程網2412020-06-18
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一個pragma(預編譯指示符),專門用來預定義全局變量,這些預定義后的全局變量在qw()列表中,在整個引用perl文件中皆可使用,即便使...

    perl教程網6812020-06-16
  • perlPerl List::Util模塊使用實例

    Perl List::Util模塊使用實例

    這篇文章主要介紹了Perl List::Util模塊使用實例,本文給出掃描符合條件的某個列表并取出第一個符合條件的、求1到1000之間的和 、求一組數字的最大值與最小...

    腳本之家4712020-06-22
  • perlperl pop push shift unshift實例介紹

    perl pop push shift unshift實例介紹

    perl的pop跟push操作數組的最右邊,shift跟unshift操作數組的最左邊 ...

    腳本之家4612020-06-10
  • perlPerl的經典用法分享

    Perl的經典用法分享

    Perl的經典用法分享,學習perl的朋友可以參考下 ...

    腳本之家6562020-06-06
  • perlPerl從文件中讀取字符串的兩種實現方法

    Perl從文件中讀取字符串的兩種實現方法

    有時候我們需要從文件中讀取字符串,這里簡單介紹下, 需要的朋友可以參考下 ...

    腳本之家6252020-06-08
  • perlperl命令行參數內建數組@ARGV淺析

    perl命令行參數內建數組@ARGV淺析

    這篇文章主要介紹了perl命令行參數內建數組@ARGV淺析,本文重點在于講解@ARGV的用法,并通過實例來說明,需要的朋友可以參考下 ...

    perl教程網6162020-06-18
主站蜘蛛池模板: 男人边吃奶边做好爽视频免费 | 娇妻终于接受了3p的调教 | 欧美日一级片 | 日本一区二区免费在线观看 | 超碰av| 欧美午夜视频一区二区三区 | 91久久国产青草亚洲 | 日韩成a人片在线观看日本 日韩不卡一区二区 | 99精品视频在线观看免费播放 | 男人在女人下面狂躁 | 99久久精品无码一区二区毛片 | 成人精品mv视频在线观看 | 日本视频在线观看播放 | 欧美亚洲国产另类在线观看 | 果冻传媒91 | 免费在线观看网址大全 | 欧美搞逼视频 | 手机看片福利 | 韩国三级理韩国三级理人伦 | 欧美人在线一区二区三区 | 国产精品原创永久在线观看 | 国产精品久久久久影视不卡 | 久久精品小视频 | 美女被爆 | 骚b小说| 亚洲精品一区二区三区中文字幕 | 欧美性另类69xxxx | 日日爱爱| 果冻传媒九一制片厂网站 | 日本高清视频一区二区 | 精品一久久香蕉国产二月 | 亚洲国产一区 | 国内精品 大秀视频 日韩精品 | 海派甜心完整版在线观看 | 欧美高清videosdesex0 | 性欧美黑人巨大喷潮xxoo | 亚洲啊v | 日韩一区二区三区在线 | 欧美日韩国产在线一区 | 91香蕉视频网址 | 动漫人物差差插曲漫画 |