perl-标量数据

Scalar标量

标量表示一个独立的东西,但并不限定是什么东西
标量是最简单的数据类型(数字/字符序列)

标量数据:表示数据的内容,即为“值”
标量变量:表示存储数据的容器

一、数字

所有数字的内部格式都相同

Perl使用底层c库处理数字,且统一使用双精度浮点数存储数据
编译与安装perl时,选择了怎样的编译参数决定了最终perl能达到的计算精度和大小范围(这是由底层库决定的,而不是perl解释库本身的限制)

在Perl内部,整型数字(不带小数点的数字)和浮点数字都统一转换为双精度浮点数来存储和计算
实质上,Perl内部时没有整型数字的,程序中的整型常量本质上还是双精度数字。

1. 整数直接量

直接写入程序代码的数据内容
perl可以在整数直接量中加入下划线来分割数字,以便更好看清数字

61298734000
61_298_734_000
2. 非十进制整数的直接量

八进制(Octal) 直接量以0开头,数字范围:0-7
十六进制(Hexadecimal) 直接量以0x开头,数字范围:0-9 a-f(A-F)
二进制 (Binary) 直接量以0b开头, 数字范围:0/1

前置0的写法只用于表示数字直接量,不能用于字符串和数字间的自动转换

3. 浮点数直接量
1.25
255.000
255.0
7.25e45 # 7.25乘以10的45次方
-6.5e-24 # 负6.5乘以10的-24次方

Perl 5.22新增了十六进制浮点数直接量的写法
p表示以2为幂,和16进制整型数字一样,以0x开头

0x1f.0p3

十六进制的浮点数直接量就是Perl内部保存数字时所使用的形式,不存在转换带来的近似问题,没有round-off问题

4. 数字操作符

+ 加
- 减
* 乘
/ 除
% 取模(先取整,再求余数)
** 乘幂

二、字符串

1. 字符串

任意字符的接续序列

最短的字符串:不包含任何字符,空字符串
最长的字符串:长度无限制,甚至可以填满所有内存(当填满内存后,对该字符串不能进行任何操作) “无内置限制”

字符串:通常可输出的字母、数字、标点符号,其范围介于ASCII编码的32到126之间

由于字符串能包含任何字符,所以可以用字符串来创建、扫描或操控二进制数据(可以将一个图形文件或编译过的可执行文件读进Perl的字符串变量,修改其内容后再写回去

此外,Perl也支持unicode

use  utf8;
2. 单引号内的字符串直接量

除了单引号反斜线字符外,单引号内所有字符都代表它们自己

3. 双引号内的字符串直接量

双引号内字符串可以使用变量内插(variable interpolated),在字符串中附带变量,结果用变量内的值替换

组合意义
\n换行
\r回车
\t制表符
\f换页符
\b退格
\a系统响铃
\e跳出(ASC编码的转义字符)
\007八进制表示的ASC值(此例中的007表示系统响铃)
\x7f十六进制表示的ASC值(此例中的7f表示删除键的控制代码)
\x{2744}十六进制表示的unicode代码点(此例中的U+2744表示雪花形状的图形字符)
\N{CHARACTER NAME}任意一个unicode代码点,用对应名称书写
\cC控制符,Control键的代码(此例中表示同时按下Ctrl键和C键的返回码)
\反斜线
"双引号
\l将下个字母转为小写
\L将它之后的所有字符都转为小写,直到\E为止
\u将下个字母转为大写
\U将它之后的所有字符都转为大写,知道\E为止
\Q相当于把它到\E间的所有非单词字符加上反斜线转义
\E结束\L、\U、\Q开始的作用范围
4. 字符串操作符

. 连接
x 字符串重复操作符 将左边的操作数(要重复的字符串)重复N次(右边的重复数需要先取整)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值