perl 语法一 数据结构标量 数组 哈希 $ @ % 0 八进制 0x 十六进制注释 #二 字符串1 字符链接 . 2 单引号内字符不会被转义 3 v字符(一个以 v 开头,后面跟着一个或多个用句点分隔的整数,会被当作一个字串文本。) $foo= v102.111.111;4 Here 文档 print <<EOF;菜鸟教程 —— 学的不仅是技术,更是梦想!EOF5 特殊字符 __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 函数: