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

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

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

服務器之家 - 腳本之家 - perl - perl運算符使用介紹與簡單應用

perl運算符使用介紹與簡單應用

2020-06-15 10:19腳本之家 perl

本文向大家簡單介紹一下Perl語法中Perl運算符的概念,Perl語言中Perl運算符有很多值得學習的地方,這里和大家分享一下它的概念和用法

perl 5基礎教程——運算符

一、算術運算符 :+(加)、-(減)、*(乘)、/(除)、**(乘冪)、%(取余)、-(單目負)

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

二、整數比較運算符

Table 1. 整數比較運算符
 

操作符

描述

<

小于

>

大于

==

等于

<=

小于等于

>=

大于等于

!=

不等于

<=>

比較,返回 1, 0, -1


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

三、字符串比較運算符

Table 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. 賦值運算符

操作符

描述

=

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 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;


注:
1. =可在一個賦值語句中出現多次,如:
  $value1 = $value2 = "a string";
2. =作為子表達式
  ($a = $b) += 3;
  等價于
  $a = $b;
  $a += 3;

 

七、自增自減運算符 :++、--

.不要在變量兩邊都使用此種操作符:++$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++;

八、字符串聯結和重復運算符

  1. 聯接: .
  2. 重復:x
  3. 聯接且賦值(類似+=): .=
例:
  $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 5. 運算符的優先級

 

操作符

描述

++--

自增,自減

-~!

單目

**

乘方

=~!~

模式匹配

*/%x

乘,除,取余,重復

+-.

加,減,聯接

<<>>

移位

-e-r, etc.

文件狀態

<<=>>=ltlegtge

不等比較

==!=<=>eqnecmp

相等比較

&

位與

|^

位或,位異或

&&

邏輯與

||

邏輯或

..

列表范圍

? and :

條件操作符

=+=-=*=,

賦值

and so on

 

,

逗號操作符

not

Low-precedence logical NOT

and

Low-precedence logical AND

orxor

Low-precedence logical OR and XOR


運算符結合性(associativity):

Table 6. 運算符結合性

操作符

結合性

++--

-~!

Right-to-left

**

Right-to-left

=~!~

Left-to-right

*/%x

Left-to-right

+-.

Left-to-right

<<>>

Left-to-right

-e-r,

<<=>>=ltlegtge

Left-to-right

==!=<=>eqnecmp

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

orxor

Left-to-right


PERL運算符簡單應用

 

一、賦值(Assignment)運算符

 

符號

范例

說明

=

$x=$y;

把$x的值賦給$y

+=

$x+=$y;

$x=$x+$y;把$x加上$y后再賦值給$x

-=

$x-=$y;

$x=$x-$y;把$x減$y后再賦值給$x

*=

$x*=$y;

$x=$x*$y;把$x乘$y后再賦值給$x

/=

$x/=$y;

$x=$x/$y;把$x除$y次方后再賦值給$x

**=

$x**=$y;

$x=$x* *$y;求出$x乘$y次方后再賦值給$x

%=

$x%=$y;

$x=$x%$y;把$x除以$y的余數后再賦值給$x

.=

$str1.=$str2;

$str1=$str1.$str2;把$str1這個字符串再加上$str2這個字符串后再賦值給$str這個字符

x=

$str x=$y;

$str=$str x $y;循環$str字符$y次再把結果賦值給
$str這個字符串

 

二、運算(Arithmetic)運算符

 

符號

范例

說明

+

$a=$x+$y

把$x和$y加后再賦值給$a

-

$a=$x+$y

把$x和$y減后再賦值給$a

*

$a=$x*$y

把$x和$y乘后再賦值給$a

/

$a=$x/$y

把$x和$y除后再賦值給$a

%

$a=$x%$y

把$x和$y除后再余數賦值給$a

**

$a=$x**$y

把$x和$y乘次方后再賦值給$a

++

$x++;++$x

把$x加一后再賦值給$x

--

$x--;--$x

把$x減一后再賦值給$x

.

$a=$x.$y

把$x字符串和$y字符串合拼后再賦值給$a

 

三、數值(Number Values)運算符

 

符號

范例

說明

>

$x>$y

如果$x大于$y返回1否則返回0

>=

$x>=$y

如果$x大于等于$y返回1否則返回0

<

$x<$y

如果$x小于$y返回1否則返回0

<=

$x<=$y

如果$x小于等于$y返回1否則返回0

==

$x==$y

如果$x等于$y返回1否則返回0

!=

$x!=$y

如果$x不等于$y返回1否則返回0

<=>

$x<=>$y

如果$x大于$y返回1;如果$x等于$y返回0;
如果$x小于$y則返回-1

 

四、字符串(String Values)運算符

 

符號

范例

說明

gt

$str1 gt $str2

如果$str1大于$str2返回1否則返回0

ge

$str1 ge $str2

如果$str1大于等于$str2返回1否則返回0

lt

$str1 lt $str2

如果$str1小于$str2返回1否則返回0

le

$str1 le $str2

如果$str1小于等于$str2返回1否則返回0

eq

$str1 eq $str2

如果$str1等于$str2返回1否則返回0

ne

$str1 ne $str2

如果$str1不等于$str2返回1否則返回0

cmp

$str1 cmp $str2

如果$str1大于$str2返回1;如果$str1=$str2返回0;
如果$str1小于$str2則返回-1

 

五、邏輯(Logical)運算符
1.$x && $y(AND)

 

$x

$y

結果

真(True)

真(True)

真(True)

真(True)

假(False)

假(False)

假(False)

真(True)

假(False)

假(False)

假(False)

假(False)

 

1.$x || $y(OR)

 

$x

$y

結果

真(True)

真(True)

真(True)

真(True)

假(False)

真(True)

假(False)

真(True)

真(True)

假(False)

假(False)

假(False)

 

1.! $x(Not)

 

$x

結果

真(True)

假(False)

假(False)

真(True)

 

六、其他運算符

 

指令:

..區域運算符(Range Operator)

說明:

這個運算符是Perl語言中特別有用運算符且很實用。

范例:

 

 

 

@digits=(1..9);

#這時@digits=(1,2,3,4,5,6,7,8,9);

 

@digits=('01'..'05');

#這時@digits=(01,02,03,04,05);

 

@char=('A'..'E');

#這時@char=(A,B,C,D,E);

 

@total=(1..3,'A'..'B');

#這時@totalr=(1,2,3'A','B');

 

 

 

指令:

判斷運算式?運算式1:運算式2條件運算符

說明:

這個運算符的意義和C語言一樣,如果判斷運算式的值是真的
話,則做運算1的運算,如果判斷運算式是假的話,則做運算式
2的運算。

范例:

 

 

 

$price=($age>60)?100:200;

 

如果$age大于60的話,則$price等于100;否則$price等于200。

 

七、常用的文件數據(File test)運算符

 

范例

說明

-r $file

如果$file是可讀取的話,返回1的值

-w $file

如果$file是可寫入的話,返回1的值

-x $file

如果$file是可執行的話,返回1的值

-e $file

如果$file存在的話,返回1的值

-o $file

如果$file是被執行者所擁有的話,返回1的值

-s $file

返回$file的文件大小(bytes)

-f $file

如果$file是正常文件的話,返回1的值

-t $file

如果$file是文本文件的話,返回1的值

-b $file

如果$file是binary文件的話,返回1的值

-m $file

返回文件最后一次更改時間到現在的日期數

 

延伸 · 閱讀

精彩推薦
  • perlperl pop push shift unshift實例介紹

    perl pop push shift unshift實例介紹

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

    腳本之家4612020-06-10
  • perlperl常見問題集合之二

    perl常見問題集合之二

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

    腳本之家2102020-05-29
  • perlPerl的經典用法分享

    Perl的經典用法分享

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

    腳本之家6562020-06-06
  • perlPerl List::Util模塊使用實例

    Perl List::Util模塊使用實例

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

    腳本之家4712020-06-22
  • perlPerl使用nginx FastCGI環境做WEB開發實例

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

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

    Perl教程網2412020-06-18
  • perlPerl從文件中讀取字符串的兩種實現方法

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

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

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

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

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

    perl教程網6162020-06-18
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

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

    perl教程網6812020-06-16
主站蜘蛛池模板: 国产小视频在线免费 | 久久青青草视频在线观 | 挺进白嫩老师下面视频 | 免费我看视频在线观看 | 亚洲精品国产精品国自产观看 | 91亚洲精品第一综合不卡播放 | 亚洲高清视频免费 | 成人免费片 | 魔法满屋免费观看完整版中文 | 欧美视频一 | 成人免费网址 | 日本一区二区三区国产 | 把美女屁股眼扒开图片 | 免费看一级 | 欧美娇小性xxxx | 日韩视频一区 | 香蕉 在线播放 | 亚洲人成网站在线观看播放青青 | 国产福利一区二区三区四区 | xxxxxx性受 | 韩国美女被的免费视频 | 色综合中文字幕天天在线 | 法国女佣系列在线播放 | 国产精品视频1区 | 亚洲高清免费在线观看 | 青青久久精品国产免费看 | 欧美在线播放一区二区 | 视频一本大道香蕉久在线播放 | 日韩理论片在线看免费观看 | 久久久精品免费视频 | 免费看又黄又爽又猛的视频软件- | 欧洲vodafonewifi日本 | 天天操天天舔 | 小妇人电影免费完整观看2021 | 91tv在线| 太紧太深了受不了黑人 | 日韩精品一二三区 | 羞羞答答免费人成黄页在线观看国产 | 女明星放荡高h日常生活 | 特黄特黄一级片 | 轻轻色在线视频中文字幕 |