设为首页 收藏本站
查看: 695|回复: 0

[经验分享] Perl 标量的操作符

[复制链接]

尚未签到

发表于 2015-12-28 09:14:09 | 显示全部楼层 |阅读模式
  今天来看看标量的操作符,标量可以分为两类:一类是数字,另一类是字符串。在perl中这两类数据可以相互转化,但是操作还是有区别的。
  下面先介绍数字类型的操作符:

  数字类型的运算操作符有一下几种:
  +(加),-(减),*(乘),/(除),-(取反)。
  不会的举手,好没有。

  下面讲一些难的。
  第一个是“%”(取余)。嗯,会C语言的可以退场。这个操作符的使用方法和“/”差不多,但是结果是除之后的余数。例如:
   $a=6%5;这时$a的值为1;
   $b=5%6; 这时$b的值为5。
  如果在进行求余运算时不是整数,那么四舍五入后进行运算,不可以对0求余噢!

  第二个是幂运算(**)。
  $c=2**3; 这时$c的值为8。相信我,我写了一个程序实验过的,程序如下:
   #!/user/bin/perl -w
   use strict; {
   my $a=2**3;
   print $a;
   }

  还有两种我们应该知道的运算符是“++”和“--”。“++”在自身基础上面加一,“--”在自身基础上减一。这种运算在c里面经常用的。

  数字的比较运算符有下面几个: “<”,“>”,“<=”,“>=”我想这几个我就不用解释了。再有一个就是“==”这个运算符用来对比两个数字是否相等。然后就是“!=”表示两个数字不等。
  还有一个好玩的比较运算符是“<=>”,这个运算符当左边的数字小于右边的时返回-1,相等时返回0,当左边的大于右边的时返回1。

  另外就是位操作符了,和c一摸一样。
  位与:& 位或:| 位非:~ 位异或:^ 左移:$x << 1 右移:$x >> 2
  注:不要将&用于负整数,因为PERL将会把它们转化为无符号数。

  然后要讲一讲的是赋值操作符,最基本的赋值操作符是“=”,(废话!)然后一种是“+=”表示在自身基础上面增加。例如:
   $d=3; $d+=3; 这时$d就等于6了。
  相应的还有“-=”,“*=”,“/=”,“**=”,“^=”,“&=”,“|=”,“~=”。 数字的操作符大致就有这些了。

  下面是关于字符串的操作符的介绍。两个字符串相加(连接)用“.”进行。例如:
   $e="hello "."all";
  这时$e的值为“hello all”相应的也就有“.=”运算了。
  另外还有一个运算符是x,没错,就是它。用来表示……只可意会,不可言传。
   $f="f"x5;       此时$f的值为"fffff",明白了吧?
  字符串的比较用以下的操作符进行:
   “lt”意为“小于,less than”;
   “gt”意为“大于,greater than”;
   “eq”意为“等于,equal”;
   “le”意为“小于等于,less than or equal”;
   “ge”意为“大于等于,greater or equal”;
   “ne”意为“不等于, not equal”;
   “cmp”意为“比较,返回 1, 0, or -1,compare”。
  可以看出来字符串的操作和数字的操作是相对的。
  另外对字符串可以进行“++”运算,这时将会把字符串的ascii码加一。但是"z"++却是"a","Z"++ 是"A","9"++是0,"ab99"++将会得到"ac00"。呵呵,很好玩吧?字符串是没有-,*,/等运算的。如果我们对字符串进行这些运算则表示我们要把字符串转换成数字然后进行计算。如果这个字符串是"111"还好说,如果我们强制perl把例如"aaaaa"一类的字符串进行数字运算,perl会把这些字符串转换成0。因此"aaa"--将会得到-1。很好玩是不是?呵呵,perl还有很多好玩的东西。

  对标量进行操作还可以使用下面的函数。
  第一个是length(),这个函数可以返回变量打印出来的长度。例如:
   length(23),将会返回2;
   length("hahaha"),将会返回6;
   length(1)将返回1。
  在perl5中length("你好"),将会返回4,听说在perl5.6中将不会。我没有实验过,不好说什么。
  第二个函数是chop()。这个函数将会节掉字符串中的最后一个字符,例如:
   $g="aaa";
   chop($g);
  这时$g中的值是"aa";同时chop会返回它所截下来的字符。试一试 $g="你好"; chop($g); 会发生什么?
  第三个函数是chomp(),这个函数仅仅将字符串末尾的换行符裁掉。
  第四个函数是substr()这个函数可以从一个字符串中截取一段长度的字符串并将其返回。例如:
   $h="hello all";
   $i=substr($h,3,5)
  将会从“hello all”中截取长度为5的字符串,就是"lo al"。试一试这样呢?
   $h="你们好吗?";
   $i=substr($h,3,5);
  第五个很有用的函数就是defined(),这个函数用来判断一个数据是否已经定义。在perl中,一个数据如果没有定义,那么他将会是一个叫做undef的特殊值。 defined()是一个非常有用的函数。至少我经常用。有其是在判断cgi输入的时候。

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-157259-1-1.html 上篇帖子: perl学习笔记--搭建开发环境 下篇帖子: Perl根据日期分割数据文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表