perl笔记

Posted by Daryl on November 27, 2018

Perl

Perl中的变量分成标量、数组和哈希(相当于Python字典)三类,标量由$开头,数组是@,哈希是%。访问后两者元素用$加上变量名。标量有数字和字符串之分,字符串如果用单引号则不会进行解析,用双引号则会进行解析,比如:

$a = '1234'
$b = "$a"
# $b中保存的是1234字符串

对数组进行的操作和Python大同小异,有join、sort、替换等操作。对于哈希的处理也大致和数组类似,用keys %hvalues %h可以得到哈希的键和值的数组。检查某个键是否在哈希中用exists。

Perl中有Python2风格的print关键字,也可以使用c风格的printf函数。

子程序(函数的定义)

sub foo{
    # 传进来的参数列表在@_变量中
    ...
}

子程序用return语句返回值,如果没有return语句,则会使用最后一行语句的计算结果作为返回值。在子程序中私有变量需要加一个my标记。如果在子程序中用local标记,则会在子程序执行的过程中影响全局变量的值,退出子程序之后会恢复原来的值。

子程序中也可以定义c风格的静态变量,用state符号声明。

Perl中定义引用,引用变量用$开头,被引用的变量之前加个\标记,解引用的时候需要根据被引用变量的类型不同在引用变量之前加上$、@或%。函数引用和解引用要在前面加个&。判断引用的类型可以用ref函数。