Perl中的列表和数组学习笔记

2019-10-01 10:16:39于海丽

3.列表
数组是由括号括起来并且其元素由逗号分隔开的列表,这些值组成了数组的元素。

列表中的元素并非必须是常数,也可以是在执行此语句时再计算值的表达式。列表可以包含任意的标量值。

4.qw简写
实践表明,字符串的列表在Perl中经常使用。有一种简便的方法可以不用输入大量的引号而达到类似的功能,那就是使用qw。

qw表示“quoted words”或者“quoted by whitespace,” 无论那种解释,Perl 将它们当作单引号字符串处理,你不能像双引号那样在qw中使用n 和$fred。whitespace(空格,像spaces,tabs,newlines 等字符串)将被忽略,剩下的组成了列表的元素。

由于qw是一种引用,因此不可以在qw内添加注释。

NOTE:Perl允许使用任何标点符号作为qw列表分界符。

5.列表赋值
和标量值类似,列表值也可以赋给变量:

($fred[0], $fred[1], $fred[2]) = (”haha”, “wawa”, undef);
print $fred[0].$fred[1].$fred[2];

左边列表中的每一个变量都得到了一个新值,和利用3 个赋值语句得到的结果是一样的。由于列表在赋值之前已经建立,因此在Perl 中可以使用如下的简单方法交换两个变量的值。

NOTE:当想引用这个数组时,Perl 有一种简单的写法。在数组名前加@(后没有中括号)来引用整个数组。

6.pop和push操作
pop操作将数组的最后一个元素取出并返回:

@array = 5..9;
pop @array;
foreach $t (@array) {
print $t;
}

pop 后可以使用或者不使用括号。这在Perl 中是一条通用规则:如果去掉括号含义不变,那括号就是可选的。

和pop 相反的操作是push,它可以将一个元素(或者一列元素)加在数组的末尾:

@array = 5..9;
push(@array,0);
foreach $t (@array) {
print $t;
}

NOTE:push的第一个参数或者pop的唯一参数必须是数组变量。

7.shift和unshift操作

push和pop对数组的末尾进行操作,相应的,unshift和shift对一个数组的开头进行操作(数组的左端有最小下标的元素)。

8.将数组插入字符串
和标量类似,数组也可以插入双引号的字符串中。插入的数组元素会自动由空格分开。

@rocks = qw{wawa kaka haha};
print "@rocks";

9.Perl 最常用的默认变量:$_
虽然它不是Perl中唯一的默认变量,但无疑是使用的最普遍的。你将在许多例子中看到Perl 在没有要求它使用某个变量或值时,会自动使用变量$_,这将节约程序员大量的时间来思考使用哪一个变量。

$_ ="yahoo google baidu";
print;

10.reverse操作
reverse(逆转)操作将输入的一串列表(可能是数组)按相反的顺序返回。