侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Perl语法中Perl运算符用法指南

技术  /  管理员 发布于 6年前   367

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


  • 上一条:
    Ruby on Rails所构建的应用程序基本目录结构总结
    下一条:
    JavaScript 正则表达式解析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客