1. 数字标量
2. 字符串标量
注意单引号和双引号的区别
3. 标量运算
4. 多行字符串
5. 特殊字符
如: __FILE__ , __LINE__ , 和 __PACKAGE__ 分别表示当前执行脚本的文件名,行号,包名。
这些特殊字符是单独的标记,不能写在字符串中,例如:
6. v字符串
一个以v开头,后面跟着一个或多个用句点分隔的整数,会被当作一个字串文本。
当你想为每个字符 直接声明其数字值时,v-字串提供了一种更清晰的构造这类字串的方法,而不像 "\x{1}\x{14}\x{12c}\x{fa0}" 这种不易于理解
Perl数组是一个存储标量值的列表变量,变量可以是不同类型。
数组变量以 @ 开头。访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取
1. 创建数组
数组变量以 @ 符号开始,元素放在括号内,也可以以 qw 开始定租灶义数组
@array = (1, 2, 'Hello')
@array = qw/ 这是 一个 数组/
第二个数组使用 qw// 运算符,它返回字符串列表,数组元素以空格分隔。当然也可以使用多行来定义数组:
@days = qw/google
taobao
...
runoob/
也可以按索引来给数组赋值,如下所示:
$array[0] = 'Monday'
...
$array[6] = 'Sunday'
2. 访问数组元素
访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取,实例如下:
数组索引值从 0 开始,即 0 为第一个元素,1 为第二个元素,以此类推。
负数从反向开始读取,-1 为第一个元素, -2 为第二个元素
3. 数组序列号
Perl提供了可以按序列输出的数组形式,格式为 起始值 + ... + 结束值
4. 数组大小
数组大小由数组中的标量上下文决定的,数组长度返回的是数组物理大小,而不是元素的个数
5. 添加和删除数组元素
Perl提供了一些有用的函数来添加和删除数组元改团素: push, pop, shift, unshift
实例:
6. 切割数组
数组索引需要指定有效的索引值,可以是正数后负数,每个索引值使用逗号隔开。
如果是连续的索引,可以使用 .. 来表示指定范围:
7. 替换数组元素
Perl中数组元素替换使用splice()函数,语法格式如下:
splice(@array, offset, length, list)
参数说明:
@array:要替换的数组
offset:起始位置
length:替换的元素个数
list:替换元素列表
实核型橘例:
8. 将字符串转换为数组
Perl中将字符串转换为数组使用split()函数, 语法格式如下:
split(pattern, expr, limit)
pattern:分隔符,默认为空格。
expr:指定字符串数。
limit:如果指定该参数,则返回该数组的元素个数。
9. 将数组转化为字符串
Perl中将数组转换为字符串使用join()函数,语法格式如下:
join(expr, list)
参数说明:
EXPR:连接符。
LIST:列表或数组。
10. 数组排序
Perl中数组排序使用sort()函数,语法格式如下:
sort(subrountine, list)
参数说明:
SUBROUTINE:指定规则。
LIST:列表或数组。
实例:
注意:数组排序是根据ASCII数字值来排序。我们在对数组进行排序时,最好先将每个元素转换成小写后再排序。
11. 特殊变量:$[
特殊变量 $[ 表示数组的第一索引值,一般都为0, 如果将 $[ 设置为1,则数组的第一索引值即为1,第二个为2,以此类推
实例:
一般情况不建议使用特殊变量 $[ ,在新版 Perl 中,该变量已废弃。
12. 合并数组
数组的元素是以逗号来分割,我们也可以使用逗号来合并数组,如下:
13. 从列表中选择元素
一个列表可以当作一个数组使用,在列表后指定索引值可以读取指定的元素:
哈希是key/value对的集合。 Perl中哈希变量以百分号(%)标记开始。
访问哈希元素格式:${key}
1. 创建哈希
一,为每个key设置value
$data{'google'} = 'google.com'
$data{'w3cschool'} = 'w3cschool.cn'
二,通过列表设置
(1). 列表中第一个元素为key, 第二个元素为value
%data = ('google', 'google.com', 'w3cschool', 'w3cschool.cn', 'taobao', 'taobao.com')
(2). 也可以使用=>符号来设置key/value
%data = ('google'=>'google.com', 'w3cschool'=>'w3cschool.cn', 'taobao'=>'taobao.com')
(3). 使用 - 来代替引号
%data = (-google=>'google.com', -w3cschool=>'w3cschool.cn', -taobao=>'taobao.com')
实例:
2. 访问哈希元素
访问哈希元素的格式:${key}
3. 读取哈希值
哈希值提取数组 ,语法格式为:@{key1, key2}
4. 读取哈希的key和value
读取所有key
可以通过使用 keys 函数读取 哈希所有的键值,语法格式如下:
keys %hash
可以使用 values 函数来读取哈希所有的值,语法格式如下:
values %HASH
5. 检测元素是否存在
如果在哈希读取不存在的key/value对,会返回undefined值,且执行时会有警告提醒。为了避免这种情况,可以使用 exists 函数来判断key是否存在,存在的时候读取
6. 获取哈希的大小
哈希大小为元素的个数,我们可以通过key或value的所有元素数组,再计算数组元素多少来获取哈希大小
7. 哈希中添加或删除元素
添加key/value对可以通过简单的赋值来完成。但是 删除哈希元素需要使用 delete 函数
使用File::Slurp 和 Digest::MD5 模块如:
#!/穗简usr/bin/perl use strictuse warnings use Digest::MD5 qw(md5_hex)use File::Slurp my ($input) = @ARGV write_file "$input.md5", md5_hex(scalar read_file $input, binmode =>猜陵裤 '汪皮:raw'), "\n"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)