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

输出如下:

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 a  variable
$g = 10;
  
# using pre Increment
$res = ++ $g ;
  
print "Value of res is = $res\n" ;
print "Value of g is = $g\n" ;
  
# taking a  variable
$g1 = 15;
  
# using post Increment
$res1 = $g1 ++;
  
print "Value of res1 is = $res1\n" ;
print "Value of g1 is = $g1\n" ;
  
# taking a  variable
$g2 = 20;
  
# using pre Decrement
$res2 = -- $g2 ;
  
print "Value of res2 is = $res2\n" ;
print "Value of g2 is = $g2\n" ;
  
# taking a  variable
$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/perl
  
use 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 左到右
.. 范围运算符 非关联
* =, / =, + =, -= 等于, 除以等于 右到左

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?