perl编程_004 基本构件的堆栈:列表与数组.PDF
文本预览下载声明
下载
第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 ,它没有内插到它的值中去。如果有一些嵌入了
40使用第一部分 Perl 基础
下载
白空间的列表元素,那么就不能使用 q w运算符。在这种情况下,上面这个代码的作用就像编
写的是下面这个代码一样:
(apples, oranges,45.6 $x)
请注意,$ x是用单引号括起来的。 q w没有对看起来像变量的元素进行变量值内插,它们
是作为常规的形式来处理的,因此 ‘ $ x ’没有被转换成标量变量 $ x 的任何值,它只是留下了一个
美元符号和字母x 。
P e r l有一个非常有用的能够对列表进行操作的运算符,称为范围运算符。范围运算符由一
对圆点( . . )来表示。下面是该运算符的用法的例子:
( 1 . . 1 0 )
范围运算符用一个左边的操作数( 1)和右边的操作数( 1 0)构成了一个包含1到1 0 (含1
与1 0)之间的所有数的列表。如果需要在列表中使用若干个范围,那么只要使用多个范围运
算符即可:
(1..10, 20..30);
上面这个例子创建了一个包含 2 1个元素的列表,即包含 1到1 0和2 0 到3 0 (含1、1 0、2 0和
3 0 )之间的数。如果范围运算符的右边的操作数小于左边的操作数,比如( 1 0 . . 1),
显示全部