Perl 数据类型
Perl 是一种弱类型语言, 有三种变量类型的数据类型: 标量, 数组, 哈希. 还有一种就是直接量, 直接量包含: 整型, 浮点型, 字符串.对于写脚本程序而言, 这些类型已经完全够用了.
1. 直接量
直接量(literal) 是指某个具体数值或字符串在Perl 源代码中的写法, 是不可变的, 所看即所得, 区别于变量.直接量也可以成为常量.
1.1 数字直接量
数字分为整数和浮点数, 但是在Perl 内部对数字都是按双精度(即浮点数)进行保存和运算的, 也就是说对Perl 本身而言并不存在整型常量.
1.1.1 整型直接量表示方法:
进制 | 含义 |
---|---|
十进制 | 0, 10, -10, 1_000_000, -1_000_000 |
八进制 | 0377, -0377, 01_00_00 |
十六进制 | 0xff, -0xff, -0x1_00_00 |
- perl 整数直接量可以使用下划线增加可读性, 非常人性化.
1.1.2 浮点型直接量表示方法:
直接量 | 含义 |
---|---|
-10.25 | 负浮点数表示 |
100.00 | 正浮点数表示 |
1.1e5 | 科学技术法表示: 1.1乘以10的5次方 |
-1.1e-5 | 科学技术法表示: -1.1 乘以10的负5次方 |
1.1E5 | 科学计数法e不区分大小写 |
1.2 字符串直接量
perl 中字符串直接量分为单引号直接量和双引号直接量:
字符串类型 | 含义 | 示例 |
---|---|---|
单引号 | 不支持转义字符(\'除外)和变量内插, \和$就表示本身 | 'abc', '$name', 'hello\nworld' |
双引号 | 支持转义字符和变量内插, \表示转义字符, $表示标量引用 | "abc", "$name", "hello\nworld" |
1.3 列表直接量
- 列表直接量是指在perl 源代码中一组数据的集合,由圆括号和都和分隔开.
1.3.1 列表定义
字符串类型 | 含义 | 示例 |
---|---|---|
(1,2,3) | ||
(1..5) |
1.3.2 列表赋值
2. 变量类型
2.1 变量简介
类型 | 描述 | 示例 |
---|---|---|
标量 | 用于表示一个数字或字符串的变量 | $name |
数组 | 用于标识一组数组, 字符的有序集合的变量 | @array_name |
哈希 | 用于标识一组key-value的无序集合的变量 | %hash_name |
3.类型转换
1.1 数字与字符串自动转换
通常情况下, perl 语言在运算时会根据语法环境自动在数字和字符串直接进行类型转换, 因为数字和字符串底层储存结构是不同的. 而应该转换为数字还是字符串取决于运算符. 比如说 '1' + '2', 因为+ 号是操作数字的运算符, 所以 '1' 和 '2' 都会由字符串直接量转换为数字型直接量; 再比如 'a' . 123, 因为. 号是拼接字符串的连接符, 所以123 会自动由数字直接量转换为字符串直接量.
//TODO