perl 学习笔记

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 函数:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骇客之技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值