Perl操作符/运算符用法示例介绍

运算符是任何编程语言的主要组成部分。操作符允许程序员对操作数执行不同类型的操作。在Perl中,操作符符号对于不同类型的操作数是不同的(比如标量和字符串)。一些已经在Perl操作符集- 1中讨论过的操作符。本文将讨论其余的运算符:

  • 引号及类引号运算
  • 字符串操作运算符
  • 范围运算符
  • 自动增量和减量运算符
  • 箭头运算符
引号及类引号运算在这些运算符中, {}将代表用户选择的一对定界符。在此类别中, 有以下三个运算符:
  • q {}:它将字符串用单引号引起来(“ )并且不能插值字符串变量。例如:q {geek}表示” geek” 。
  • qq {}:它将字符串用双引号引起来(“ ” )并可以插入字符串变量。例如:qq {geek}给出” geek” 。
  • qx {}:它将用反引号引起来的字符串(“ ).例如:qq {geek}给出`geek`。
例子:
# Perl program to demonstrate the Quote # Like Operators#!/usr/local/bin/perl# taking a string variable $g = "Geek" ; # using single quote Operators # this operator will not # interpolate the string variable $r = q{$g} ; print "Value of g is = $r\n" ; # using double quote Operators # this operator will interpolate # the string variable $r = qq{$g} ; print "Value of g is = $r\n" ; # Executing unix date command $d = qx{date} ; print "Value of qx{date} = $d" ;

【Perl操作符/运算符用法示例介绍】输出如下:
Value of g is = $g Value of g is = Geek Value of qx{date} = Sun Aug 12 14:19:43 UTC 2018

字符串操作运算符字符串是标量变量, 以($)登录Perl。字符串由用户在单引号内定义(“ )或双引号(“ ” )。 Perl中有不同类型的字符串运算符, 如下所示:
  • 串联运算符(。):Perl字符串与一个点(。)符号。在Perl中使用Dot(。)符号代替(+)符号。
  • 重复运算符(x):x运算符在其左侧接受一个字符串, 在其右侧接受一个数字。它将返回在左侧的字符串, 其重复次数是在右侧的值的次数。
例子:
# Perl program to demonstrate the # string operators#!/usr/bin/perl# Input first string $first_string = "Geeks" ; # Input second string $second_string = "forGeeks" ; # Implement Concatination operator(.) $concat_string = $first_string . $second_string ; # displaying concatination string result print "Result of Concatenation Operator = $concat_string\n" ; # Input a string $string = "srcmini " ; # Using Repetation operator(x) $str_result = $string x 4; # Display output # print string 4 times print "Result of Repetation Operator = $str_result" ;

输出如下:
Result of Concatenation Operator = srcmini Result of Repetation Operator = srcmini srcmini srcmini srcmini

注意:要了解有关Perl中的字符串运算符的更多信息, 可以参考Perl字符串运算符文章。
范围运算符(..)在Perl中, 范围运算符用于创建指定元素的指定序列范围。因此, 此运算符用于创建指定的序列范围, 其中起始元素和结束元素都将包括在内。例如, 7 .. 10将创建一个类似于7、8、9、10的序列。
例子:
# Perl program to demonstrate the # Range operators#!/usr/bin/perl# using range operator @res = (1..4); # Display output print "Result of Range Operator = @res" ;

输出如下:
Result of Range Operator = 1 2 3 4

自动递增和自动递减运算符自动增量(++):递增整数值。当放置在变量名称(也称为预增量运算符)之前时, 其值会立即增加。例如, ++ $ x。当将其放在变量名之后(也称为后递增运算符)时, 其值将暂时保留, 直到执行该语句为止, 并且在下一个语句执行之前对其进行更新。例如, $ x ++。
自动递减运算符(–):减少整数值。当放置在变量名称(也称为预减运算符)之前时, 其值将立即减小。例如, – $ x。当将其放在变量名(也称为后减运算符)之后时, 其值将暂时保留, 直到执行该语句为止, 并且在下一个语句执行之前对其进行更新。例如, $ x–。
注意:递增和递减运算符被称为一元运算符, 因为它们使用单??个操作数。
例子:
# Perl program to demonstrate the Auto # Increment and Decrement Operator#!/usr/local/bin/perl# taking avariable $g = 10; # using pre Increment $res = ++ $g ; print "Value of res is = $res\n" ; print "Value of g is = $g\n" ; # taking avariable $g1 = 15; # using post Increment $res1 = $g1 ++; print "Value of res1 is = $res1\n" ; print "Value of g1 is = $g1\n" ; # taking avariable $g2 = 20; # using pre Decrement $res2 = -- $g2 ; print "Value of res2 is = $res2\n" ; print "Value of g2 is = $g2\n" ; # taking avariable $g3 = 25; # using post Decrement $res3 = $g3 --; print "Value of res3 is = $res3\n" ; print "Value of g3 is = $g3\n" ;

输出如下:
Value of res is = 11 Value of g is = 11 Value of res1 is = 15 Value of g1 is = 16 Value of res2 is = 19 Value of g2 is = 19 Value of res3 is = 25 Value of g3 is = 24

箭头运算符(-> )此运算符用于从类或对象中取消引用变量或方法。示例:$ ob-> $ x是从对象$ ob访问变量$ x的示例。通常, 此运算符用作对哈希或数组的引用, 以访问哈希或数组的元素。
例子:
# Perl program to demonstrate the Arrow Operator#!/usr/local/bin/perluse strict; use warnings; # reference to array my $arr1 = [4, 5, 6]; # array inside array my $arr2 = [4, 5, [6, 7]]; # reference to hash my $has1 = { 'a' => 1, 'b' => 2}; # hash inside hash my $has2 = { 'a' => 1, 'b' => 2, 'c' => [1, 2], 'd' => { 'x' => 3, 'y' => 4}}; # using arrow operator print "$arr1-> [0]\n" ; print "$arr2-> [1]\n" ; print "$arr2-> [2][0]\n" ; print "$has2-> {'a'}\n" ; print $has2 -> { 'd' }-> { 'x' }, "\n" ; print $has2 -> { 'c' }-> [0], "\n" ;

输出如下:
4 5 6 1 3 1

要记住的要点:
  1. 操作员关联性:它用于确定方程式或表达式是从左到右还是从右到左求值。评估顺序非常重要。有时, 从双方的角度看, 它们可能都相同, 但可能会产生很大的差异。
  2. Perl Arity:Arity可以定义为操作员在其上进行操作的操作数的数量。
    • 空运算符:这些运算符对零操作数进行运算。
    • 一元运算符:这些运算符对一个操作数进行运算。
    • 二进制运算符:这些运算符对两个操作数进行运算。
    • 列表运算符:这些运算符对操作数列表进行运算。
  3. Perl固定性:可以将其定义为运算符相对于其操作数的位置。
    • 中缀运算符:这些运算符位于其操作数之间。例如5 + 8, 这里, +运算符位于操作数5和8之间
    • 前缀运算符:这些运算符位于其操作数之前。例如, ! $ g – 7, 这里!和–运算符位于操作数$ a和3之前。
    • 后缀运算符:这些运算符出现在其操作数之后。例如, $ y ++, 这里, ++运算符出现在操作数$ x之后。
    • 环行符运算符:这些运算符将其操作数包含为散列构造函数和引号运算符。例如, (qq [..])
    • 后缀运算符:这些运算符遵循某些操作数, 并围绕某些操作数。例如, $ hash {$ y}
运算符优先级和关联性表
操作符 优先顺序 关联性
-> 箭头运算符 左到右
++, – 递增, 递减 非关联
** 指数 右到左
!, +, -, ~ 不, 一元加, 一元减, 补码 右到左
!=, ~= 不等于, 补码等于 左到右
*, /, % 乘, 除, 模 左到右
< < , > > 移位运算符 左到右
< > , < =, > = 比较, 小于等于, 右小于等于 非关联
& 按位与 左到右
|, ^ 按位或, EX-OR 左到右
& & 左到右
|| OR 左到右
.. 范围运算符 非关联
* =, / =, + =, -= 等于, 除以等于 右到左

    推荐阅读