本文和大家重点讨论一下Perl语法中Perl运算符的概念和用法,主要包括算术运算符,位运算符,赋值运算符和表运算符等内容,希望本文的介绍你对你有所帮助。
Perl语法 Perl运算符简介
1.Perl运算符
1.1 算数运算符
Perl固然在变量与数据范例都和C大不不异,然而它的运算符和C险些不异,除了C的范例转换运算符type,指针引用运算符*ptr和布局成员选择符,其他C的运算符险些完全呈现在Perl里,Perl新增了几个新运算符,好比在字符处置方面.
◆Perl到今朝撑持的算数运算符有一些几种:
+加法运算符
-减法运算符
*乘运算符
/除运算符(只对浮点数运算)
%取模运算符(只对整数运算)
下面给出Perl算数运算的一些实例:
$x=2.5;
$y=3;
print($x+2*$y);
print(7/$y);
printint(7/$y);
print(7%$y);
print(7.5%$y);
Perl还撑持递增和递减运算符:
++递加
--递减
◆Perl新增了乘方运算符:**,请看下面的例子:
$x=2**3;#2的3次方
$y=2**0.5;#2的平方根
$z=-2**-3;#成果是:-0.125
1.2 Perl语法之位运算符
位运算符对二进制表达式的整数情势举行处置,运算成果为整数.若是位运算符的操纵数是字符串或分数,Perl起首把它们转换成整数,并用32位长整数情势暗示它们.Perl撑持全部的C说话运算符:
|位或运算符
&位与运算符
.位非运算符
<<位左移运算符>>位右移运算符
有关位运算符的具体内容,请参看C说话有关的内容,这里我们就未几讲了,只举几个例子:
$x=5;
$y=3;
print$x|$y;#成果是7(二进制暗示:111)
print$x&$y; #成果是1(二进制暗示:001)
print$x<<2;#成果是20(二进制暗示:10100)print$x>>1;#成果是2(二进制暗示:10)
1.3Perl语法之比力运算符
比力运算符的功效是比力两个操纵数的值.Perl在举行比力运算前,会先将字符操纵数转换为数字.Perl用专门的字符串比力运算符对纯字符举行表运算.
1.4Perl语法之逻辑运算符
逻辑运算符测试布尔表达式的值,其成果为真或假.Perl以为逻辑运算符的每个操纵数都为布尔值(即真或假).Perl的逻辑运算符包罗:
||逻辑或运算符;
&&逻辑与运算符.
Perl按从左到右的挨次计较逻辑表达式.当逻辑或运算符的一个操纵数为真,大概当逻辑与运算符的一个操纵数为假时,Perl将停止逻辑表达式的计较.Perl操纵这种短回路计值快速计较表达式的值.是以,这两个运算符也叫短回路AND和短回路OR.
除了以上两个运算符,另有以下三种逻辑运算符:
!负运算符
?:前提运算符
,挨次计值符
运算符!否认操纵数的布尔值,相称于逻辑非.?:前提运算符,有3个操纵数,表达情势为:condition?true-result:false-result
下面的语句经由过程?:运算符,实现拜候权限的区分:
$access=($usereq'流云'?'root':'guest');
挨次运算符(,)从严酷意义上讲并不是逻辑运算符,由于它并不查抄操纵数的真假.Perl从左到右的计较逗号运算符,并返回最右边的操纵数,都好运算符是从C连续出来的,详细利用可以参考C里的用法,这里我就不累述了.
1.5Perl语法之字符运算符
因为Perl自己是为文本处置开辟的.是以,它增添很多新的字符串运算符.Perl的字符串运算符包罗:
.字符毗连运算符
x字符串复制运算符
=~将一个变量绑定到模式立室
!~将一个变量绑定到模式立室,取非
前两个运算符比力简略.此刻看看例子:print'C'.'a'.'l'x2;#输出成果将是:Call;
后两个运算符首要用于模式立室,今后将会有关于模式立室的详细解说,这里就未几说了,我们来看看它们的例子,以领会它们的感化:
$text='本日下雨了';
print($text=~/下雨/)?'本日下雨了':'本日没下雨';
我们看到的例子可以发明是否变量中是否包罗我们所必要的字符串.
1.6Perl语法之赋值运算符
赋值运算符和C说话的赋值运算符差未几,以下是各类赋值运算符:
=+=-=*=/=%=|=&=
^=~=<<=>>=**==.=x=
1.7Perl语法之Lvalue
在Perl和C说话中,lvalue暗示赋值运算符左边的实体.也便是说,lvalue与变量一样,可以给它分派值.比方在Perl号令文件中不克不及向字符串赋值,如"Bob"=32这个语句便是错误的!由于"Bob"不是一个lvalue,可是若是对$Bob赋值,如$Bob=32,这个语句便是准确的!由于变量$Bob是一个lvalue.
在Perl中,任何故意义的lvalue只能暗示一个实体.比方下面的***个语句列出了表的值(便是数组的值,只不外说法纷歧样而已),@color便是一个lvalue,第二个语句中,将表的值赋值给3个标量变量,3个变量便是lvalue:
@color=($r,$g,$b);
($r,$g,$b)=@color;
Perl的赋值运算符对表举行处置时,可以不合错误整个表举行处置,而只针对表的某一个大概几个元素举行赋值:
@times[2,5,9]=(20,40,10);
下面的语句把表的前2个值赋给两个标量,别的部门赋给另一个表:
($arg1,$arg2,@reset)=@ARGV;
1.8Perl语法之表运算符
Perl包罗以下一些表运算符,而c没有:
,表机关符
..规模运算符
x表复制运算符
前面我们在先容"标量与数组变量"时,已经计划到了机关符(我以为叫分开符,更轻易明白些)规模运算符我们在用来建立数组下标规模时,也用到过!不外,请注重它的功效还远不止这个,它还可以用来作为返回从左边操纵数到右边操纵数之间挨次整数的规模(包罗摆布双方的操纵数).号令文件凡是同时操纵规模运算符缔造一个持续整数表:@digits=0..9;
如许我们就缔造了一个表,其值为(0,1,2,3,4,5,6,7,8,9)
表复制运算符是一个很是风趣的东东,我们来看一个例子:@copy_3=(1,2,3)x3;这个表有9元素,其值为(1,2,3,1,2,3,1,2,3)怎么样?很便利吧!
1.9Perl语法之文件运算符
Perl大大扩展了文件处置运算符.Perl至少有27个运算符在不打开文件的环境下,可以或许测试文件的信息,可是很不幸,因为Perl在最初是UNIX的东西,以是绝大大都的运算符在我们风行的平台上:WIN9X/NT体系无法利用.但万幸的是不是全数另有4个运算符绝对可用,并且功效不错哦!一下便是那4个运算符:
-d测试文件是不是一个目次;
-e测试文件是否存在;
-s测试文件的巨细;
-w测试文件是否是可写的;
前两个运算符返回的是布尔值(即真或假),第3个运算符返回文件的巨细(以字节作为返回体例).下面是
利用方式:
- if(-e'Perl.exe')
- {
- print'Filesizeis:'-s'Perl.exe';
- }
- else
- {
- print'Can\'tfindPerl.exe\n';
- }
- (-w'SomeFile')||die"CannotwritetoSomeFile\n";
本文来自CSDN部落格,转载请标明来由:http://blog.csdn.net/amj0622/archive/2009/09/28/4606976.aspx
【编辑推荐】