perl 语法
一 数据结构
标量 数组 哈希 $ @ %
0 八进制 0x 十六进制
注释 #
二 字符串
1 字符链接 .
2 单引号内字符不会被转义
3 v字符(一个以 v 开头,后面跟着一个或多个用句点分隔的整数,会被当作一个字串文本。)
$foo= v102.111.111;
4 Here 文档
print <<EOF;
菜鸟教程
—— 学的不仅是技术,更是梦想!
EOF
5 特殊字符 __FILE__ __LINE__ __PACKAGE__
6 转义字符
\u 强制下一个字符为大写
\l 强制下一个字符为小写
\U 强制将所有字符转换为大写
\L 强制将所有的字符转换为小写
\Q 将到\E为止的非单词(non-word)字符加上反斜线
\E 结束\L、\U、\Q
三 数组
1 创建数组
@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;
2 数组序列号
Perl 提供了可以按序列输出的数组形式,格式为 起始值 + .. + 结束值
@var_10 = (1..10);
@var_abc = (a..z);
3 变量上下文
将数组赋值给一个标量,它返回了数组大小
4 数组操作
push @ARRAY, LIST
将列表的值放到数组的末尾
pop @ARRAY
弹出数组最后一个值,并返回它
shift @ARRAY
弹出数组第一个值,并返回它。数组的索引值也依次减一。
unshift @ARRAY, LIST
将列表放在数组前面,并返回新数组的元素个数。
切割数组
@sites = qw/google taobao runoob weibo qq facebook 网易/;
@sites2 = @sites[3,4,5];
@sites2 = @sites[3..5];
替换数组元素
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
将字符串转换为数组
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
将数组转换为字符串
join EXPR, LIST
数组排序
sort [ SUBROUTINE ] LIST
注意:数组排序是根据 ASCII 数字值来排序。所以我们在对数组进行排序时最好先将每个元素转换为小写后再排序。
特殊变量 $[ 表示数组的第一索引值,一般都为 0 ,如果我们将 $[ 设置为 1,则数组的第一个索引值即为 1,第二个为 2
一般情况我们不建议使用特殊变量 $[,在新版 Perl 中,该变量已废弃。
合并数组(逗号来合并数组)
@odd = (1,3,5);
@even = (2, 4, 6);
@numbers = (@odd, @even);
四 哈希
访问哈希元素格式:${key}
创建哈希
1、为每个 key 设置 value
$data{'google'} = 'google.com';
$data{'runoob'} = 'runoob.com';
$data{'taobao'} = 'taobao.com';
2、通过列表设置
列表中第一个元素为 key,第二个为 value。
%data = ('google', 'google.com', 'runoob', 'runoob.com', 'taobao', 'taobao.com');
也可以使用 => 符号来设置 key/value:
%data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com');
以下实例是上面实例的变种,使用 - 来代替引号:
%data = (-google=>'google.com', -runoob=>'runoob.com', -taobao=>'taobao.com');
使用这种方式 key 不能出现空格,读取元素方式为:
$val = %data{-google}
$val = %data{-runoob}
读取哈希的 key 和 value
读取所有key
我们可以使用 keys 函数读取哈希所有的键,语法格式如下:
keys %HASH
类似的我么可以使用 values 函数来读取哈希所有的值,语法格式如下:
values %HASH
检测元素是否存在
exists
获取哈希大小
哈希大小为元素的个数
哈希中添加或删除元素
添加 key/value 对可以通过简单的赋值来完成。但是删除哈希元素你需要使用 delete 函数:
perl 学习笔记
最新推荐文章于 2022-12-02 08:40:25 发布