下载
第4学时 基本构件的堆栈:列表与数组
标量是P e r l 的单数名词。它们可以代表任何一种元素,如单词、记录、文档、一行文本或
者一个字符。但是,有时需要一些元素的集合,比如许多个单词、几个记录、两个文档、 5 0
行文本或者十几个字符等。
当需要谈论P e r l 中的许多东西时,可以使用列表数据。可以用 3种方法来表示列表数据,
它们是列表、数组和哈希结构。
列表是列表数据最简单的表示方法,它们只是一个标量的组合。有时它们使用一组括号
将标量括起来,各个标量之间用逗号隔开。例如,(2,5,$ a,“B o b ”)是两个数字,一个标
量$ a 和单词“ B o b ”的列表。列表中的每个项目称为列表元素。为了不违背自然随意的原则,
P e r l的列表可以根据你的需要包含任意多个元素。由于列表是标量的集合,并且标量也可以任
意大,因此列表能够存放相当多的数据。
若要将一个列表存放在一个变量中,需要一个数组变量。在 P e r l中,数组变量用一个符号
(@)后随一个有效的变量名(第1学时中的“数字与字符串”这一节做了介绍)来表示。例
如,@ F O O 就是P e r l 中的一个有效的数组变量。数组变量可以与标量变量使用相同的名字,例
如,$ n a m e s与@ n a m e s 可以指不同的东西,$ n a m e s指一个标量变量,而@ n a m e s 则指一个数组。
这两个变量之间毫无关系。
数组中的各个项目称为数组元素。各个数组元素按它们在数组中的位置来引用,这个位
置称为索引(比如说,数组 @ F O O 的第三个元素,或者数组 @ n a m e s 的第五个元素等等)。
另一种列表类型是哈希结构,它类似数组。哈希结构将在第 7学时中详细介绍。
在本学时中,我们将要介绍:
• 如何填充和清空数组。
• 如果逐个元素查看数组。
• 如何对数组进行排序和输出。
• 如何将标量分割成数组,以及如何将数组重新合成为标量。
4.1 将数据放入列表和数组
将数据放入一个列表是非常容易的。正如你刚刚看到的那样,列表的语法是用一组括号
将一些标量值括起来。下面就是列表的一个例子:
(5, 'apple', $x. 3.14159)
这个例子用于创建一个由 4个元素组成的列表,它包含数字 5、单词 a p p l e 、标量变量 $ x
和π值。如果列表只包含简单的字符串,而用单引号将每个字符串括起来对你来说又太麻烦,
那么P e r l 提供了一个快捷方式,即 q w 运算符。下面是使用q w的一个例子:
qw (apples oranges 45.6$x)
这个例子创建了一个由 4个元素组成的列表。列表的每个元素之间用一个白空间(空格、
制表符或换行符)隔开。 $ x 是个直接量$和x,它没有内插到它的值中去。如果有一些嵌入了