1. perl 语法
    2. 数据结构
    3. 标量 数组 哈希 $ @ %
    4. 0 八进制 0x 十六进制
    5. 注释 #
    6. 字符串
    7. 1 字符链接 .
    8. 2 单引号内字符不会被转义
    9. 3 v字符(一个以 v 开头,后面跟着一个或多个用句点分隔的整数,会被当作一个字串文本。)
    10. $foo= v102.111.111;
    11. 4 Here 文档
    12. print <<EOF;
    13. 菜鸟教程
    14. —— 学的不仅是技术,更是梦想!
    15. EOF
    16. 5 特殊字符 __FILE__ __LINE__ __PACKAGE__
    17. 6 转义字符
    18. \u 强制下一个字符为大写
    19. \l 强制下一个字符为小写
    20. \U 强制将所有字符转换为大写
    21. \L 强制将所有的字符转换为小写
    22. \Q 将到\E为止的非单词(non-word)字符加上反斜线
    23. \E 结束\L\U\Q
    24. 数组
    25. 1 创建数组
    26. @array = (1, 2, 'Hello');
    27. @array = qw/这是 一个 数组/;
    28. 2 数组序列号
    29. Perl 提供了可以按序列输出的数组形式,格式为 起始值 + .. + 结束值
    30. @var_10 = (1..10);
    31. @var_abc = (a..z);
    32. 3 变量上下文
    33. 将数组赋值给一个标量,它返回了数组大小
    34. 4 数组操作
    35. push @ARRAY, LIST
    36. 将列表的值放到数组的末尾
    37. pop @ARRAY
    38. 弹出数组最后一个值,并返回它
    39. shift @ARRAY
    40. 弹出数组第一个值,并返回它。数组的索引值也依次减一。
    41. unshift @ARRAY, LIST
    42. 将列表放在数组前面,并返回新数组的元素个数。
    43. 切割数组
    44. @sites = qw/google taobao runoob weibo qq facebook 网易/;
    45. @sites2 = @sites[3,4,5];
    46. @sites2 = @sites[3..5];
    47. 替换数组元素
    48. splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
    49. 将字符串转换为数组
    50. split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
    51. 将数组转换为字符串
    52. join EXPR, LIST
    53. 数组排序
    54. sort [ SUBROUTINE ] LIST
    55. 注意:数组排序是根据 ASCII 数字值来排序。所以我们在对数组进行排序时最好先将每个元素转换为小写后再排序。
    56. 特殊变量 $[ 表示数组的第一索引值,一般都为 0 ,如果我们将 $[ 设置为 1,则数组的第一个索引值即为 1,第二个为 2
    57. 一般情况我们不建议使用特殊变量 $[,在新版 Perl 中,该变量已废弃。
    58. 合并数组(逗号来合并数组)
    59. @odd = (1,3,5);
    60. @even = (2, 4, 6);
    61. @numbers = (@odd, @even);
    62. 哈希
    63. 访问哈希元素格式:${key}
    64. 创建哈希
    65. 1、为每个 key 设置 value
    66. $data{'google'} = 'google.com';
    67. $data{'runoob'} = 'runoob.com';
    68. $data{'taobao'} = 'taobao.com';
    69. 2、通过列表设置
    70. 列表中第一个元素为 key,第二个为 value
    71. %data = ('google', 'google.com', 'runoob', 'runoob.com', 'taobao', 'taobao.com');
    72. 也可以使用 => 符号来设置 key/value:
    73. %data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com');
    74. 以下实例是上面实例的变种,使用 - 来代替引号:
    75. %data = (-google=>'google.com', -runoob=>'runoob.com', -taobao=>'taobao.com');
    76. 使用这种方式 key 不能出现空格,读取元素方式为:
    77. $val = %data{-google}
    78. $val = %data{-runoob}
    79. 读取哈希的 key value
    80. 读取所有key
    81. 我们可以使用 keys 函数读取哈希所有的键,语法格式如下:
    82. keys %HASH
    83. 类似的我么可以使用 values 函数来读取哈希所有的值,语法格式如下:
    84. values %HASH
    85. 检测元素是否存在
    86. exists
    87. 获取哈希大小
    88. 哈希大小为元素的个数
    89. 哈希中添加或删除元素
    90. 添加 key/value 对可以通过简单的赋值来完成。但是删除哈希元素你需要使用 delete 函数: